Submission #1299781

#TimeUsernameProblemLanguageResultExecution timeMemory
1299781trandangquangCarnival Tickets (IOI20_tickets)C++20
0 / 100
1 ms408 KiB
#include "tickets.h" #include<bits/stdc++.h> using namespace std; #define foru(i,a,b) for(int i=(a); i<=(b); ++i) #define ford(i,a,b) for(int i=(a); i>=(b); --i) #define rep(i,a) for(int i=0; i<(a); ++i) #define sz(a) (int)(a).size() #define all(a) (a).begin(),(a).end() #define bit(s,i) (((s)>>(i))&1) #define ii pair<int,int> #define vi vector<int> #define vii vector<ii> #define fi first #define se second #define ll long long #define eb emplace_back #define pb push_back #define __builtin_popcount __builtin_popcountll #define _ << " " << template <class X, class Y> bool maxi(X &x, Y y){return x<y?x=y,true:false;} template <class X, class Y> bool mini(X &x, Y y){return x>y?x=y,true:false;} ll find_maximum(int rnds, vector<vi> pts) { int n,m; n=sz(pts); m=sz(pts[0]); vector<vi> tickets(n, vi(m,-1)); vector<pair<int,ii>> ptsGain; ll res=0; rep(i,n){ rep(j,rnds) res-=pts[i][j], tickets[i][j]=j; for(int j=rnds-1, k=m-1; j>=0; --j, --k){ ptsGain.pb({pts[i][j]+pts[i][k], {i,j}}); } } sort(all(ptsGain),greater<pair<int,ii>>()); rep(i,rnds*n/2){ res+=ptsGain[i].fi; int col=ptsGain[i].se.fi, c1=ptsGain[i].se.se, c2=ptsGain[i].se.se-rnds+m; tickets[i][c2]=tickets[i][c1]; tickets[i][c1]=-1; } allocate_tickets(tickets); return res; }
#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...