# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
39384 | 2018-01-13T11:23:57 Z | 14kg | 코알라 (JOI13_koala) | C++11 | 2000 ms | 5888 KB |
#include <stdio.h> #include <algorithm> #include <queue> #define LL long long using namespace std; int S, E, J, n; long long P; pair<int, long long> in[100001]; priority_queue<pair<long long, int> > Q; int main() { int t; pair<long long, int> path; scanf("%d %d %d %lld %d", &S, &E, &J, &P, &n); for (int i = 1; i <= n; i++) scanf("%d %lld", &in[i].first, &in[i].second); sort(in + 1, in + n + 1); Q.push({ 0,S }); for (int i = 1; i <= n; i++) { while (Q.top().second < in[i].first) { if (0); // Q.top().first==path.first else { path = Q.top(), Q.pop(); t = (in[i].first - path.second) / J; if ((LL)path.second + (LL)J*(LL)t < (LL)in[i].first) t++; Q.push({ path.first - P*(LL)t, path.second + J*t }); } } Q.push({ Q.top().first + in[i].second, in[i].first }); } while (Q.top().second < E) Q.pop(); printf("%lld", Q.top().first); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 2732 KB | Output is correct |
2 | Correct | 0 ms | 2732 KB | Output is correct |
3 | Incorrect | 0 ms | 2732 KB | Output isn't correct |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2000 ms | 3584 KB | Execution timed out |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 186 ms | 5888 KB | Output is correct |
2 | Correct | 106 ms | 5888 KB | Output is correct |
3 | Correct | 66 ms | 5888 KB | Output is correct |
4 | Correct | 69 ms | 5888 KB | Output is correct |
5 | Correct | 219 ms | 4352 KB | Output is correct |
6 | Correct | 36 ms | 4352 KB | Output is correct |