Соревновательное программирование с нечетными / четными суммами [closed]

Я застрял на проблеме конкурентного программирования. Имеется N <1000 чисел, каждое со значениями от 1 до 100. Эти числа могут быть разделены на группы таким образом, чтобы сумма первой группы была четной, сумма второй группы была нечетной, сумма третьей группы была четной и т. Д. Таким попеременным способом. Я написал код, но этот код иногда возвращает неправильный ответ, но не все время. Я предполагаю, что это как-то связано с моими делами, но я просто застрял.

Пример ввода:

7

1 3 5 7 9 11 13

Вывод:

3

Объяснение: Вы можете поместить 1 и 3 в первую группу, 5 7 9 во вторую группу и 11 13 в последнюю группу.

import java.util.Scanner;


public class Average {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int odd = 0;
        int even = 0;
        int ans = 0;
        int x;
        for (int i = 0; i < n; i++) {
            x = sc.nextInt();
            if (x % 2 == 0) {
                even++;
            } else {
                odd++;
            }
        }

        ans = Math.min(even, odd) * 2;
        even -= ans;
        odd -= ans;

        if (even > odd) {
            ans++;
        } else {

            if (odd % 3 == 0) {
                ans += (odd / 3) * 2;
            } else if(odd%3 == 1){
                ans += (odd / 3) * 2 - 1;
            } else {
                ans += (odd/3) * 2 + 1;
            }

        }

        System.out.println(ans);
    }
}
```

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *