Submission #301689

#TimeUsernameProblemLanguageResultExecution timeMemory
301689qiangbaoCarnival Tickets (IOI20_tickets)C++14
27 / 100
751 ms60280 KiB
#include <iostream> #include <algorithm> #include <vector> #include "tickets.h" #define pb push_back using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<int, pii> piii; int n, m, kk; vector<vector<int> > a; int beg[1501], endi[1501]; vector<pii> subt; vector<piii> pos; bool used[3000001]; bool usedc[1501]; ll ansval=0; vector<int> plamt; vector<vector<int> > ans; long long find_maximum(int kkk, vector<vector<int> > x) { int i, j; n=x.size(), m=x[1].size(), kk=kkk; a=x; for(i=0;i<m;i++) plamt.pb(-1); for(i=0;i<n;i++) ans.pb(plamt); for(i=0;i<n;i++) endi[i]=m-1; for(i=0;i<n;i++){ for(j=0;j<kk;j++){ ansval+=a[i][endi[i]]; subt.pb({a[i][endi[i]]+a[i][kk-j-1], i}); endi[i]--; } } sort(subt.begin(), subt.end()); for(i=0;i<n*kk/2;i++){ pii f=subt[i]; ansval-=f.first; beg[f.second]++, endi[f.second]++; } for(i=0;i<n;i++){ for(j=0;j<beg[i];j++) pos.pb({a[i][j], {i, j}}); for(j=endi[i]+1;j<m;j++) pos.pb({a[i][j], {i, j}}); } sort(pos.begin(), pos.end()); for(i=0;i<kk;i++){ int cnt=0, cnt2=0; for(j=0;j<n;j++) usedc[j]=false; j=0; while(cnt<n/2){ if(!used[j] && !usedc[pos[j].second.first]){ ans[pos[j].second.first][pos[j].second.second]=i; cnt++, used[j]=true, usedc[pos[j].second.first]=true; } j++; } j=n*kk-1; while(cnt2<n/2){ if(!used[j] && !usedc[pos[j].second.first]){ ans[pos[j].second.first][pos[j].second.second]=i; cnt2++, used[j]=true, usedc[pos[j].second.first]=true; } j--; } } allocate_tickets(ans); return ansval; } //int main() //{ // int i, j; // // cin >> n >> m >> kk; // for(i=0;i<m;i++) // plamt.pb(0); // for(i=0;i<n;i++) // a.pb(plamt); // plamt.clear(); // for(i=1;i<=n;i++) // for(j=1;j<=m;j++){ // int x; // cin >> x; // a[i-1][j-1]=x; // } // find_maximum(kk, a); //}
#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...