제출 #889648

#제출 시각아이디문제언어결과실행 시간메모리
889648vjudge1Council (JOI23_council)C++17
22 / 100
388 ms26380 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #pragma GCC target("avx,avx2,fma") #pragma GCC optimize("Ofast,unroll-loops") #define pii pair<int,int> using namespace __gnu_pbds; using namespace std; #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define int long long #define f first #define s second #define pii pair<int,int> template<class T>bool umax(T &a,T b){if(a<b){a=b;return true;}return false;} template<class T>bool umin(T &a,T b){if(b<a){a=b;return true;}return false;} typedef tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; const int mod= 1e9 +7; const int N=1e5*4; int binpow (int a, int n) { if (n == 0) return 1; if (n % 2 == 1) return binpow (a, n-1) * a; else { int b = binpow (a, n/2); return b * b; } } void solve(){ int n,m,k; cin>>n>>m; int arr[n+1][m+1]; vector<int>vis(m+1); map<pii,int>mp; map<int,int>cont; for(int i = 1;i<=n;i++){ for(int j = 1;j<=m;j++){ cin>>arr[i][j]; if(arr[i][j])vis[j]+=1; } if(m==2)mp[{arr[i][1],arr[i][2]}]++; if(m==1)cont[arr[i][1]]++; } 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"; umax(mx,cnt); } cout<<mx<<"\n"; } } else{ if(m>=3){ cout<<24<<"\n"; return; } if(m==2){ for(int i = 1;i<=n;i++){ for(int j = 1;j<=m;j++) if(arr[i][j])vis[j]--; mp[{arr[i][1],arr[i][2]}]--; int mx = 0; if(mp[{1,0}]>0){ vis[1]--; int cnt = 0; for(int k = 1;k<=m;k++){ if((vis[k])>((n-2)/2))cnt++; } umax(mx,cnt); vis[1]++; } //---2-- if(mp[{0,1}]>0){ vis[2]--; int cnt = 0; for(int k = 1;k<=m;k++){ if((vis[k])>((n-2)/2))cnt++; } umax(mx,cnt); vis[2]++; } //---3--- if(mp[{1,1}]>0){ vis[1]--;vis[2]--; int cnt = 0; for(int k = 1;k<=m;k++){ if((vis[k])>((n-2)/2))cnt++; } umax(mx,cnt); vis[1]++;vis[2]++; } //----4---- if(mp[{0,0}]>0){ int cnt = 0; for(int k = 1;k<=m;k++){ if((vis[k])>((n-2)/2))cnt++; } umax(mx,cnt); } for(int j = 1;j<=m;j++){ if(arr[i][j])vis[j]++; } cout<<mx<<"\n"; mp[{arr[i][1],arr[i][2]}]++; } } else{ for(int i = 1;i<=n;i++){ cont[arr[i][1]]--; if(arr[i][1]==1)vis[1]--; int mx = 0; if(cont[1]>0){ vis[1]--; if(vis[1]>(n-2)/2)mx = 1; vis[1]++; } if(cont[0]>0){ if(vis[1]>(n-2)/2)mx = 1; } cout<<mx<<"\n"; cont[arr[i][1]]++; if(arr[i][1]==1)vis[1]++; } } } } signed main() { // freopen("seq.in", "r", stdin); // freopen("seq.out", "w", stdout); ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL); int cnt=0; int tt=1;//cin>>tt; while(tt--)solve(); }

컴파일 시 표준 에러 (stderr) 메시지

council.cpp: In function 'void solve()':
council.cpp:35:10: warning: unused variable 'k' [-Wunused-variable]
   35 |  int n,m,k;
      |          ^
council.cpp: In function 'int main()':
council.cpp:171:6: warning: unused variable 'cnt' [-Wunused-variable]
  171 |  int cnt=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...