Submission #767742

#TimeUsernameProblemLanguageResultExecution timeMemory
767742PurpleCrayonCouncil (JOI23_council)C++17
16 / 100
4050 ms2480 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define sz(v) int(v.size())
#define ar array
typedef long long ll;
const int N = 3e5+10, MOD = 1e9+7;
const int M = 21;

int n, m, a[N], cnt[M];

void solve() {
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            int x; cin >> x;
            a[i] |= x << j;

            cnt[j] += x;
        }
    }

    for (int i = 0; i < n; i++) {
        int base = 0;
        int bad = 0;
        for (int j = 0; j < m; j++) {
            int need = n / 2;
            int has = cnt[j] - ((a[i] >> j) & 1);
            if (has != need) {
                base += has > need;
                continue;
            }

            bad |= 1 << j;
            base++;
        }

        int ans = m;
        for (int j = 0; j < n; j++) if (j != i) ans = min(ans, __builtin_popcount(a[j] & bad));
        cout << base - ans << '\n';
    }
}
 
int main() {
    ios::sync_with_stdio(false); cin.tie(0);
    int T = 1;
    // cin >> T;
    while (T--) solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...