#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n, m;
cin >> n >> m;
int a[n + 1][m + 1];
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
cin >> a[i][j];
}
}
vector<int> cnt(m + 1, 0);
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
cnt[j] += a[i][j];
}
}
int K = (n - 2) / 2;
for(int i = 1; i <= n; i++) {
int ans = 0;
vector<int> V;
for(int j = 1; j <= m; j++) {
if(cnt[j] - a[i][j] > K + 1) {
ans += 1;
continue;
}
// at least k + 2
// if cnt[j] - a[i][j] < k + 1 this is imposible
// if cnt[j] - a[i][j] == k + 1 that is posible but...
if(cnt[j] - a[i][j] < K + 1) {
continue;
}
V.push_back(j);
}
vector<int> c(n + 1, 0);
for(auto it : V) {
for(int j = 1; j <= n; j++) {
c[j] += a[j][it];
}
}
int mx = m + 1;
for(int j = 1; j <= n; j++) {
if(j == i) {
continue;
}
mx = min(mx, c[j]);
}
ans += V.size() - mx;
cout << ans << "\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... |