제출 #889607

#제출 시각아이디문제언어결과실행 시간메모리
889607vjudge1Council (JOI23_council)C++17
16 / 100
1940 ms5652 KiB
#include <bits/stdc++.h> #define int long long #define all(x) x.begin(),x.end() #define ff first #define ss second #define pb push_back using namespace std; signed main(){ ios_base::sync_with_stdio(); cin.tie(0); int n,m; cin>>n>>m; int a[n][m]; for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ cin>>a[i][j]; } } vector <int> cnt; for(int i=0;i<m;i++){ int kol=0; for(int j=0;j<n;j++){ if(a[j][i]==1)kol++; } cnt.pb(kol); } if(n<=3000){ for(int i=0;i<n;i++){ for(int k=0;k<m;k++){ if(a[i][k]==1)cnt[k]--; } int mx=0; for(int j=0;j<n;j++){ if(i!=j){ int kol=0; for(int k=0;k<m;k++){ if(a[j][k]==1)cnt[k]--; } for(int k=0;k<m;k++){ if(cnt[k]>=n/2)kol++; } for(int k=0;k<m;k++){ if(a[j][k]==1)cnt[k]++; } mx=max(mx,kol); } } cout<<mx<<"\n"; for(int k=0;k<m;k++){ if(a[i][k]==1)cnt[k]++; } } return 0; } if(m==2){ map <pair <int,int> ,int> mp; for(int i=0;i<n;i++){ mp[{a[i][0],a[i][1]}]++; } for(int i=0;i<n;i++){ int mx=0; mp[{a[i][0],a[i][1]}]--; for(int k=0;k<m;k++){ if(a[i][k]==1)cnt[k]--; } if(mp[{0,0}]>0){ int kol=0; for(int k=0;k<m;k++){ if(cnt[k]>=n/2)kol++; } mx=max(mx,kol); } if(mp[{1,0}]>0){ int kol=0; cnt[0]--; for(int k=0;k<m;k++){ if(cnt[k]>=n/2)kol++; } cnt[0]++; mx=max(mx,kol); } if(mp[{0,1}]>0){ int kol=0; cnt[1]--; for(int k=0;k<m;k++){ if(cnt[k]>=n/2)kol++; } cnt[1]++; mx=max(mx,kol); } if(mp[{1,1}]>0){ int kol=0; cnt[1]--;cnt[0]--; for(int k=0;k<m;k++){ if(cnt[k]>=n/2)kol++; } cnt[1]++;cnt[0]--; mx=max(mx,kol); } mp[{a[i][0],a[i][1]}]++; for(int k=0;k<m;k++){ if(a[i][k]==1)cnt[k]++; } cout<<mx<<"\n"; } } else if(m==1){ map <int,int> mp; for(int i=0;i<n;i++){ mp[a[i][0]]++; } for(int i=0;i<n;i++){ int mx=0; mp[a[i][0]]--; for(int k=0;k<m;k++){ if(a[i][k]==1)cnt[k]--; } if(mp[0]>0){ int kol=0; for(int k=0;k<m;k++){ if(cnt[k]>=n/2)kol++; } mx=max(mx,kol); } if(mp[1]>0){ int kol=0; cnt[0]--; for(int k=0;k<m;k++){ if(cnt[k]>=n/2)kol++; } cnt[0]++; mx=max(mx,kol); } cout<<mx<<"\n"; for(int k=0;k<m;k++){ if(a[i][k]==1)cnt[k]++; } mp[a[i][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...