Решение задачи Неко и виноград с Codeforces

Без пояснения   Просмотров: 40


Однажды Неко нашёл n сундуков с сокровищами и m ключей. На i-м сундуке было написано целое число ai, а на j-м ключе написано целое число bj. Неко знает, что эти сундуки содержат волшебный виноград удивительной магической силы, так что он хочет открыть как можно больше сундуков.

Как оказалось, j-й ключ может открыть i-й сундук если (и только если) сумма чисел на ключе и на сундуке является нечётным числом. Иначе говоря, ai+bj≡1(mod2). Один ключ может открыть не более одного сундука, а один сундук нельзя открыть более одного раза.

Выясните максимальное количество сундуков, которое можно открыть.

Код

#include <bits/stdc++.h>

using namespace std;

int main() {
    int n, m; cin >> n >> m;
    int oa{}; 
    for (int i = 0; i < n; i++){ 
        int a; 
        cin >> a; 
        if (a & 1) 
            oa++; 
    }
    int ob{}; 
    for (int i = 0; i < m; i++){ 
        int b; 
        cin >> b; 
        if (b & 1) 
            ob++; 
    }
    cout << (min(ob, n - oa) + min(oa, m - ob));
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться