Submission #1077590

#TimeUsernameProblemLanguageResultExecution timeMemory
1077590vjudge1Council (JOI23_council)C++17
56 / 100
4043 ms33232 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long map<int,int>ma; int sum[2000000]; int p[2000000],pp[2000000]; int co[2000000]; int val[2000000]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,m; cin>>n>>m; int ans=0; int a[n][m]; for(int i=0;i<m;i++) co[i]=0; for(int i=0;i<n;i++) { //co[i]=0; val[i]=0; } for(int i=0;i<n;i++) { for(int y=0;y<m;y++) { cin>>a[i][y]; if(a[i][y]==1) co[y]++; val[i]+=(1<<y)*a[i][y]; } ma[val[i]]++; } vector<int>v; for(auto i:ma) v.push_back(i.first); int l=v.size(); int s1=0,s2=0; for(int i=0;i<m;i++) { if(co[i]>=n/2) ans++; if(co[i]<n/2) continue; else if(co[i]==n/2) s1+=1<<i; else if(co[i]==n/2+1) s2+=1<<i; } int o[l]; // cout<<s1<<' '<<s2<<endl; for(int i=0;i<l;i++) { // cout<<i<<endl; p[i]=v[i]&s1; pp[i]=v[i]&s2; o[i]=__builtin_popcount(p[i]); if(ma[v[i]]>1) { sum[v[i]]=ans-p[i]-pp[i]; } int x=-1000000000; //cout<<i<<' '; for(int y=i-1;y>=0;y--) { //cout<<y<<endl; int h=ans-__builtin_popcount(p[i]|p[y])-__builtin_popcount(pp[i]&pp[y]); x=max(x,h); sum[v[y]]=max(sum[v[y]],h); } sum[v[i]]=max(sum[v[i]],x); } for(int i=0;i<n;i++) cout<<sum[val[i]]<<endl; }

Compilation message (stderr)

council.cpp: In function 'int main()':
council.cpp:34:2: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   34 |  if(a[i][y]==1)
      |  ^~
council.cpp:36:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
   36 |    val[i]+=(1<<y)*a[i][y];
      |    ^~~
council.cpp:60:7: warning: variable 'o' set but not used [-Wunused-but-set-variable]
   60 |   int o[l];
      |       ^
#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...