제출 #1256043

#제출 시각아이디문제언어결과실행 시간메모리
1256043comgaTramAnh웜뱃 (IOI13_wombats)C++20
18 / 100
660 ms20636 KiB
#include <bits/stdc++.h> #include "wombats.h" using namespace std; long long sum = 0LL; int h[5000][200]; int v[5000][200]; int f[5000][200]; int ans[2][2]; int n, m; void init(int R, int C, int H[5000][200], int V[5000][200]) { n = R; m = C; for (int i = 0; i < R; i++) { for (int j = 0; j < C; j++) { h[i][j] = H[i][j]; v[i][j] = V[i][j]; } } } void dijkstra(int u, int c) { const int inf = 1000000007; for (int i = 0; i < n; i++) { f[i][0] = f[i][1] = inf; } priority_queue <tuple <int, int, int>, vector <tuple <int, int, int>>, greater <tuple <int, int, int>>> pq; f[0][c] = 0; pq.push(make_tuple(f[0][c], 0, c)); while (pq.empty() == false) { tuple <int, int, int> element = pq.top(); pq.pop(); int dist = get <0>(element); int i = get <1>(element); int j = get <2>(element); if (f[i][j] != dist) { continue; } if (j > 0) { if (f[i][j - 1] > f[i][j] + h[i][j - 1]) { f[i][j - 1] = f[i][j] + h[i][j - 1]; pq.push(make_tuple(f[i][j - 1], i, j - 1)); } } if (j < m - 1) { if (f[i][j + 1] > f[i][j] + h[i][j]) { f[i][j + 1] = f[i][j] + h[i][j]; pq.push(make_tuple(f[i][j + 1], i, j + 1)); } } if (i < n - 1) { if (f[i + 1][j] > f[i][j] + v[i][j]) { f[i + 1][j] = f[i][j] + v[i][j]; pq.push(make_tuple(f[i + 1][j], i + 1, j)); } } } ans[c][0] = min(ans[c][0], f[n - 1][0]); ans[c][1] = min(ans[c][1], f[n - 1][1]); } void changeH(int P, int Q, int W) { const int inf = 1000000007; h[P][Q] = W; ans[0][0] = ans[0][1] = ans[1][0] = ans[1][1] = inf; dijkstra(0, 0); dijkstra(0, 1); } void changeV(int P, int Q, int W) { const int inf = 1000000007; v[P][Q] = W; ans[0][0] = ans[0][1] = ans[1][0] = ans[1][1] = inf; dijkstra(0, 0); dijkstra(0, 1); } int escape(int V1, int V2) { return ans[V1][V2]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...