#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#include <bits/stdc++.h>
#define endl "\n"
#define F first
#define S second
#define pb push_back
#define pf push_front
#define popf pop_frot
#define popb pop_back
//#define int long long
#define in insert
//#define mid (l+r)/2
using namespace std;
const int N=3e5+5;
bool b[N][21];
int best[N],n,m,cnt[21],ans[N],ret=0,need;
void R(int k , int p){
if(cnt[k]==need && b[p][k]==1) --ret;
cnt[k]-=b[p][k];
return ;
}
void A(int k , int p){
if(cnt[k]==need-1 && b[p][k]==1) ++ret;
cnt[k]+=b[p][k];
return ;
}
int32_t main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(nullptr);
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>b[i][j];
cnt[j]+=b[i][j];
}
}
need=(n)/2;
for(int j=1;j<=m;j++){
if(cnt[j]>=need) ++ret;
}
for(int i=1;i<=n;i++){
for(int j=1;j<i;j++){
for(int k=1;k<=m;k++){
R(k,i);
R(k,j);
}
ans[i]=max(ans[i],ret);
ans[j]=max(ans[j],ret);
//cout<<" # "<<i<<' '<<j<<' '<<ret<<endl;
for(int k=1;k<=m;k++){
A(k,i);
A(k,j);
}
}
}
for(int i=1;i<=n;i++) cout<<ans[i]<<endl;
return 0;
}
# | 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... |