# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
379751 | FatihSolak | Hokej (COCI17_hokej) | C++17 | 176 ms | 11356 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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;
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 += now.t * now.k;
last--;
cnt++;
continue;
}
int can = min(z,now.t);
now.t -= can;
z -= can;
ans += now.k*can;
if(!now.t)cnt++;
if(nw == -1){
st[col] = now.pos;
}
else{
sub.push_back({m-z+1,nw,now.pos});
}
nw = now.pos;
}
col++;
}
cout << ans << endl;
for(int i=0;i<6;i++){
cout << st[i] << " ";
}
cout << 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 time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |