Submission #1154134

#TimeUsernameProblemLanguageResultExecution timeMemory
1154134Younis_DwaiCouncil (JOI23_council)C++20
16 / 100
4094 ms6756 KiB
#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 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...