# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
341939 | phathnv | Hokej (COCI17_hokej) | C++11 | 139 ms | 6508 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mxN = 500001;
struct data{
int q, e, ind;
};
int m, n;
data a[mxN];
void ReadInput(){
cin >> m >> n;
for(int i = 1; i <= n; i++){
cin >> a[i].q >> a[i].e;
a[i].ind = i;
}
}
void Solve(){
sort(a + 1, a + 1 + n, [](const data &a, const data &b){
return a.q > b.q;
});
vector <int> start(6, 0);
vector <pair<int, pair<int, int>>> answer;
ll res = 0;
int ptr = 1;
for(int i = 0; i < 6; i++){
start[i] = a[ptr].ind;
res += (ll) a[ptr].q * a[ptr].e;
int curTime = a[ptr].e;
a[ptr].e = 0;
ptr++;
while (curTime < m){
int x = min(m - curTime, a[ptr].e);
answer.push_back({curTime, {a[ptr - 1].ind, a[ptr].ind}});
res += (ll) a[ptr].q * x;
curTime += x;
a[ptr].e -= x;
if (a[ptr].e == 0)
ptr++;
}
}
cout << res << '\n';
for(int i = 0; i < 6; i++)
cout << start[i] << ' ';
cout << '\n';
sort(answer.begin(), answer.end());
cout << answer.size() << '\n';
for(auto p : answer)
cout << p.first << ' ' << p.second.first << ' ' << p.second.second << '\n';
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
ReadInput();
Solve();
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |