#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int bt[n], zero = 0, one = 0, two = 0, cnt[m];
memset(bt,0,sizeof(bt));
memset(cnt,0,sizeof(cnt));
for(int i=0;i<n;i++)
for(int j=0;j<m;j++) {
int a;
cin >> a;
cnt[j] += a;
bt[i] |= (a << j);
}
for(int i=0;i<n;i++)
bt[i] = ~bt[i];
for(int i=0;i<m;i++)
if(cnt[i] >= (n / 2) + 2)
zero++;
else if(cnt[i] == (n / 2) + 1)
one |= (1 << i);
else if(cnt[i] == (n / 2))
two |= (1 << i);
for(int i=0;i<n;i++) {
int ans = 0;
for(int j=0;j<n;j++)
if(j != i)
ans = max(ans, __builtin_popcount((one&(bt[i]|bt[j]))|(two&bt[i]&bt[j])));
cout << ans + zero << "\n";
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |