Submission #889799

#TimeUsernameProblemLanguageResultExecution timeMemory
889799vjudge1Council (JOI23_council)C++17
41 / 100
4045 ms19880 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back int main(){ ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL); int n,m; cin>>n>>m; int arr[n+1][m+1]; vector<int>vis(m+1),mp((1<<m)),msk((1<<m)),ind(n+1); for(int i = 1;i<=n;i++){ int sum = 0; for(int j = 1;j<=m;j++){ cin>>arr[i][j]; if(arr[i][j]){ vis[j]+=1; sum += (1<<(j-1)); } } ind[i] = sum; mp[sum]++; } if(n<=3000){ for(int i = 1;i<=n;i++){ int mx = 0; vector<int>vis1(m+1); for(int j = 1;j<=m;j++){ if(arr[i][j]) vis1[j]++; } for(int j = 1;j<=n;j++){ if(j==i)continue; vector<int>vis2(m+1); int cnt = 0 ; for(int k = 1;k<=m;k++){ if(arr[j][k])vis2[k]++; } for(int k = 1;k<=m;k++){ if((vis[k]-vis1[k]-vis2[k])>((n-2)/2))cnt++; //cout<<vis[k]-vis1[k]-vis2[k]<<" "; } //cout<<"\n"; mx = max(mx,cnt); } cout<<mx<<"\n"; } } else{ int mn = ((n-2)/2); for(int i = 1;i<=n;i++){ int val = ind[i]; vector<int>gh; vector<int>vis1(m+1); for(int j = 1;j<=m;j++) if(arr[i][j]){ vis1[j]++; if(vis[j] - 1<= mn){ gh.pb(j - 1); } } int k = gh.size(); vector<int>use((1<<k)); mp[val]--; int mx = 0; for(int mask = 0;mask<(1<<m);mask++){ if(mp[mask]<=0||mx==m)continue; int sum = 0; for(int lr = 0;lr<gh.size();lr++){ if(((mask>>gh[lr])&1)==1)sum += (1<<lr); } if(use[sum])continue; else use[sum] = 1; //------------------ vector<int>vis2(m+1); int cnt = 0; for(int j = 0;j<m;j++) if(((mask>>j)&1)==1)vis2[j+1]++; for(int j = 1;j<=m;j++) if(vis[j]-vis1[j]-vis2[j]>mn)cnt++; mx = max(mx,cnt); if(mask==0)break; } cout<<mx<<"\n"; mp[val]++; } } }

Compilation message (stderr)

council.cpp: In function 'int main()':
council.cpp:73:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   73 |     for(int lr = 0;lr<gh.size();lr++){
      |                    ~~^~~~~~~~~~
#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...