Submission #379764

#TimeUsernameProblemLanguageResultExecution timeMemory
379764FatihSolakHokej (COCI17_hokej)C++17
120 / 120
156 ms6620 KiB
#include <bits/stdc++.h> #define N 200005 using namespace std; int st[6]; struct player{ int k,t,pos; bool operator < (player other){ return k < other.k; } }; struct ch{ int time,a,b; bool operator < (ch other){ return time < other.time; } }; vector<player> v; void solve(){ int m,n; cin >> m >> n; for(int i=1;i<=n;i++){ int k,t; cin >> k >> t; v.push_back({k,t,i}); } sort(v.rbegin(),v.rend()); long long ans = 0; /*for(auto u:v){ cout << u.k << " " <<u.t << " " << u.pos << endl; }*/ vector<ch> sub; int col = 0 ,last = 5; int cnt = 0; while(col <= last){ int z = m; int nw = -1; while(z){ auto &now = v[cnt]; if(z!=m && now.t == m && last != col){ st[last] = now.pos; ans += 1ll*now.t * now.k; last--; cnt++; continue; } int can = min(z,now.t); now.t -= can; ans += 1ll*now.k*can; if(!now.t)cnt++; if(nw == -1){ st[col] = now.pos; } else{ sub.push_back({m-z,nw,now.pos}); } z -= can; nw = now.pos; } col++; } cout << ans << endl; for(int i=0;i<6;i++){ cout << st[i] << " "; } cout << endl<< sub.size()<<endl; sort(sub.begin(),sub.end()); for(auto u:sub){ cout << u.time << " " << u.a << " " << u.b << endl; } } int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); #ifdef Local freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif int t=1; //cin>>t; while(t--){ solve(); } #ifdef Local cout<<endl<<fixed<<setprecision(2)<<1000.0 * clock() / CLOCKS_PER_SEC<< " milliseconds "; #endif }
#Verdict Execution timeMemoryGrader output
Fetching results...