Submission #788697

#TimeUsernameProblemLanguageResultExecution timeMemory
788697Trumling카니발 티켓 (IOI20_tickets)C++14
0 / 100
1 ms304 KiB
#include "tickets.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; #define pb push_back #define F first #define S second #define enter cout<<'\n'; #define INF 99999999999999999 #define MOD 1000000007 #define all(x) x.begin(),x.end() long long find_maximum(int k, vector<vector<int>> x) { int n = x.size(); int m = x[0].size(); vector<vector<int>> answer(n,vector<int>(m,-1)); vector<pair<ll,pair<ll,ll>>>v; for(int i=0;i<n;i++) { v.pb({x[i][0],{i,0}}); v.pb({x[i][m-1],{i,m-1}}); } sort(all(v)); ll ans=-1; vector<pair<ll,ll>>nn(n); for(int i=0;i<2*n;i++) { vector<bool>vis(n,0); vis[v[i].S.F]=1; vector<pair<ll,ll>>now; now.pb(v[i].S); ll idx=2*n-1; ll count=0; ll curr=0; while(count<n/2) { if(vis[v[idx].S.F]) { idx--; continue; } now.pb(v[idx].S); curr+=abs(v[i].F-v[idx].F); vis[v[idx].S.F]=1; count++; } count=0; idx=0; while(count<n/2-1) { if(vis[v[idx].S.F]) { idx++; continue; } now.pb(v[idx].S); curr+=abs(v[i].F-v[idx].F); vis[v[idx].S.F]=1; count++; } if(ans<curr) { ans=curr; for(int i=0;i<n;i++) nn[i]={now[i].F,now[i].S}; } vis.assign(n,0); nn.clear(); vis[v[i].S.F]=1; now.pb(v[i].S); curr=0; count=0; idx=0; while(count<n/2) { if(vis[v[idx].S.F]) { idx++; continue; } now.pb(v[idx].S); curr+=abs(v[i].F-v[idx].F); vis[v[idx].S.F]=1; count++; } idx=2*n-1; count=0; while(count<n/2-1) { if(vis[v[idx].S.F]) { idx--; continue; } now.pb(v[idx].S); curr+=abs(v[i].F-v[idx].F); vis[v[idx].S.F]=1; count++; } if(ans<curr) { ans=curr; for(int i=0;i<n;i++) nn[i]={now[i].F,now[i].S}; } } for(int i=0;i<n;i++) answer[nn[i].F][nn[i].S]=0; allocate_tickets(answer); return ans; }
#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...