# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
39383 | 2018-01-13T11:21:56 Z | 14kg | 코알라 (JOI13_koala) | C++11 | 2000 ms | 5888 KB |
#include <stdio.h> #include <algorithm> #include <queue> 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 (path.second + J*t < in[i].first) t++; Q.push({ path.first - P*(long long)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
# | 결과 | 실행 시간 | 메모리 | 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 | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 2000 ms | 3584 KB | Execution timed out |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 183 ms | 5888 KB | Output is correct |
2 | Correct | 106 ms | 5888 KB | Output is correct |
3 | Correct | 73 ms | 5888 KB | Output is correct |
4 | Correct | 76 ms | 5888 KB | Output is correct |
5 | Correct | 213 ms | 4352 KB | Output is correct |
6 | Correct | 23 ms | 4352 KB | Output is correct |