#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 += now.t * now.k;
last--;
cnt++;
continue;
}
int can = min(z,now.t);
now.t -= can;
ans += 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
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
364 KB |
Output is correct |
2 |
Correct |
2 ms |
492 KB |
Output is correct |
3 |
Failed |
7 ms |
832 KB |
the answer doesn't match with the value Z |
4 |
Correct |
1 ms |
364 KB |
Output is correct |
5 |
Correct |
6 ms |
620 KB |
Output is correct |
6 |
Correct |
4 ms |
492 KB |
Output is correct |
7 |
Correct |
3 ms |
640 KB |
Output is correct |
8 |
Correct |
41 ms |
2020 KB |
Output is correct |
9 |
Failed |
151 ms |
6620 KB |
the answer doesn't match with the value Z |
10 |
Failed |
157 ms |
6736 KB |
the answer doesn't match with the value Z |