# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
55164 |
2018-07-06T07:35:44 Z |
윤교준(#1528) |
None (JOI14_ho_t4) |
C++11 |
|
344 ms |
17012 KB |
#include <bits/stdc++.h>
#define pb push_back
#define eb emplace_back
#define sz(V) ((int)(V).size())
#define allv(V) ((V).begin()),((V).end())
#define befv(V) ((V)[sz(V)-2])
#define sorv(V) sort(allv(V))
#define revv(V) reverse(allv(V))
#define univ(V) (V).erase(unique(allv(V)),(V).end())
#define upmax(a,b) (a)=max((a),(b))
#define upmin(a,b) (a)=min((a),(b))
#define rb(x) ((x)&(-(x)))
#define INF (0x3f3f3f3f)
#define INFLL (0x3f3f3f3f3f3f3f3fll)
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<int, ll> pil;
typedef pair<ll, int> pli;
const int MAXN = 100005;
const int MAXM = 300005;
priority_queue<pli, vector<pli>, greater<pli>> PQ;
vector<pii> G[MAXN];
ll D[2][MAXN];
int A[MAXM], B[MAXM], C[MAXM];
int H[MAXN];
ll Ans = INFLL;
int N, M, X, MXH;
void f(int i, int h, ll dst) {
if(D[h][i] <= dst) return;
D[h][i] = dst;
PQ.push(pli(dst, i*2 + h));
}
int main() {
//freopen("input.txt", "r", stdin);
ios::sync_with_stdio(false);
cin >> N >> M >> X;
for(int i = 1; i <= N; i++) cin >> H[i];
for(int i = 1; i <= M; i++) cin >> A[i] >> B[i] >> C[i];
for(int i = 1, a, b, c; i <= M; i++) {
a = A[i]; b = B[i]; c = C[i];
if(c <= H[a]) G[a].eb(b, c);
if(c <= H[b]) G[b].eb(a, c);
}
for(int i = 0; i < 2; i++) fill(D[i], D[i]+N+1, INFLL);
f(1, !!X, 0);
for(; !PQ.empty();) {
int idx, hi; ll dst;
tie(dst, idx) = PQ.top(); PQ.pop();
hi = idx&1; idx >>= 1;
if(D[hi][idx] < dst) continue;
if(idx == N) {
if(!hi) {
upmin(Ans, dst + H[N]);
} else {
ll h = ll(H[N]) - dst;
upmin(Ans, dst + H[N] - h);
}
continue;
}
for(pii e : G[idx]) {
int nidx = e.first;
ll c = e.second;
if(!hi) {
ll ndst = dst + c * 2;
f(nidx, 0, ndst);
} else {
ll h = ll(X) - dst;
ll ndst = INFLL;
if(H[nidx] < h-c) {
ndst = dst + h - H[nidx];
f(nidx, 1, ndst);
} else if(c < h) {
ndst = dst + c;
f(nidx, 1, ndst);
} else {
ndst = dst + c * 2 - h;
f(nidx, 0, ndst);
}
}
}
}
if(INFLL <= Ans) puts("-1");
else cout << Ans << endl;
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
2680 KB |
Output is correct |
2 |
Correct |
6 ms |
2916 KB |
Output is correct |
3 |
Correct |
6 ms |
3120 KB |
Output is correct |
4 |
Correct |
6 ms |
3120 KB |
Output is correct |
5 |
Correct |
7 ms |
3120 KB |
Output is correct |
6 |
Correct |
4 ms |
3120 KB |
Output is correct |
7 |
Correct |
5 ms |
3120 KB |
Output is correct |
8 |
Correct |
7 ms |
3120 KB |
Output is correct |
9 |
Correct |
4 ms |
3120 KB |
Output is correct |
10 |
Correct |
7 ms |
3120 KB |
Output is correct |
11 |
Correct |
5 ms |
3120 KB |
Output is correct |
12 |
Correct |
7 ms |
3120 KB |
Output is correct |
13 |
Correct |
7 ms |
3120 KB |
Output is correct |
14 |
Correct |
7 ms |
3120 KB |
Output is correct |
15 |
Correct |
8 ms |
3120 KB |
Output is correct |
16 |
Correct |
6 ms |
3120 KB |
Output is correct |
17 |
Correct |
5 ms |
3120 KB |
Output is correct |
18 |
Correct |
5 ms |
3120 KB |
Output is correct |
19 |
Correct |
8 ms |
3120 KB |
Output is correct |
20 |
Correct |
6 ms |
3120 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
249 ms |
11440 KB |
Output is correct |
2 |
Correct |
235 ms |
16420 KB |
Output is correct |
3 |
Correct |
214 ms |
16420 KB |
Output is correct |
4 |
Correct |
276 ms |
17012 KB |
Output is correct |
5 |
Correct |
227 ms |
17012 KB |
Output is correct |
6 |
Correct |
13 ms |
17012 KB |
Output is correct |
7 |
Correct |
158 ms |
17012 KB |
Output is correct |
8 |
Correct |
344 ms |
17012 KB |
Output is correct |
9 |
Correct |
206 ms |
17012 KB |
Output is correct |
10 |
Correct |
112 ms |
17012 KB |
Output is correct |
11 |
Correct |
33 ms |
17012 KB |
Output is correct |
12 |
Correct |
157 ms |
17012 KB |
Output is correct |
13 |
Correct |
92 ms |
17012 KB |
Output is correct |
14 |
Correct |
179 ms |
17012 KB |
Output is correct |
15 |
Correct |
13 ms |
17012 KB |
Output is correct |
16 |
Correct |
260 ms |
17012 KB |
Output is correct |
17 |
Correct |
36 ms |
17012 KB |
Output is correct |
18 |
Correct |
33 ms |
17012 KB |
Output is correct |
19 |
Correct |
101 ms |
17012 KB |
Output is correct |
20 |
Correct |
45 ms |
17012 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
2680 KB |
Output is correct |
2 |
Correct |
6 ms |
2916 KB |
Output is correct |
3 |
Correct |
6 ms |
3120 KB |
Output is correct |
4 |
Correct |
6 ms |
3120 KB |
Output is correct |
5 |
Correct |
7 ms |
3120 KB |
Output is correct |
6 |
Correct |
4 ms |
3120 KB |
Output is correct |
7 |
Correct |
5 ms |
3120 KB |
Output is correct |
8 |
Correct |
7 ms |
3120 KB |
Output is correct |
9 |
Correct |
4 ms |
3120 KB |
Output is correct |
10 |
Correct |
7 ms |
3120 KB |
Output is correct |
11 |
Correct |
5 ms |
3120 KB |
Output is correct |
12 |
Correct |
7 ms |
3120 KB |
Output is correct |
13 |
Correct |
7 ms |
3120 KB |
Output is correct |
14 |
Correct |
7 ms |
3120 KB |
Output is correct |
15 |
Correct |
8 ms |
3120 KB |
Output is correct |
16 |
Correct |
6 ms |
3120 KB |
Output is correct |
17 |
Correct |
5 ms |
3120 KB |
Output is correct |
18 |
Correct |
5 ms |
3120 KB |
Output is correct |
19 |
Correct |
8 ms |
3120 KB |
Output is correct |
20 |
Correct |
6 ms |
3120 KB |
Output is correct |
21 |
Correct |
249 ms |
11440 KB |
Output is correct |
22 |
Correct |
235 ms |
16420 KB |
Output is correct |
23 |
Correct |
214 ms |
16420 KB |
Output is correct |
24 |
Correct |
276 ms |
17012 KB |
Output is correct |
25 |
Correct |
227 ms |
17012 KB |
Output is correct |
26 |
Correct |
13 ms |
17012 KB |
Output is correct |
27 |
Correct |
158 ms |
17012 KB |
Output is correct |
28 |
Correct |
344 ms |
17012 KB |
Output is correct |
29 |
Correct |
206 ms |
17012 KB |
Output is correct |
30 |
Correct |
112 ms |
17012 KB |
Output is correct |
31 |
Correct |
33 ms |
17012 KB |
Output is correct |
32 |
Correct |
157 ms |
17012 KB |
Output is correct |
33 |
Correct |
92 ms |
17012 KB |
Output is correct |
34 |
Correct |
179 ms |
17012 KB |
Output is correct |
35 |
Correct |
13 ms |
17012 KB |
Output is correct |
36 |
Correct |
260 ms |
17012 KB |
Output is correct |
37 |
Correct |
36 ms |
17012 KB |
Output is correct |
38 |
Correct |
33 ms |
17012 KB |
Output is correct |
39 |
Correct |
101 ms |
17012 KB |
Output is correct |
40 |
Correct |
45 ms |
17012 KB |
Output is correct |
41 |
Correct |
198 ms |
17012 KB |
Output is correct |
42 |
Correct |
54 ms |
17012 KB |
Output is correct |
43 |
Correct |
124 ms |
17012 KB |
Output is correct |
44 |
Incorrect |
161 ms |
17012 KB |
Output isn't correct |
45 |
Halted |
0 ms |
0 KB |
- |