This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#include "wombats.h"
const int M = 5000;
const int N = 200;
int R, C;
int H[M][N], V[M][N];
int CACHE[N][N];
void solve(int a, int b) {
int dp[1000];
for (int &x : dp) x = 1e9;
dp[a] = 0;
for (int i = 0; i <= R - 1; i++) {
for (int j = 0; i && j < C; j++)
dp[j] += V[i - 1][j];
for (int j = 0; j < C - 1; j++)
dp[j + 1] = min(dp[j + 1], dp[j] + H[i][j]);
for (int j = C - 2; j >= 0; j--)
dp[j] = min(dp[j], dp[j + 1] + H[i][j]);
}
CACHE[a][b] = dp[b];
}
void init(int _R, int _C, int _H[5000][200], int _V[5000][200]) {
R = _R;
C = _C;
for (int i = 0; i < R; i++)
for (int j = 0; j < C - 1; j++)
H[i][j] = _H[i][j];
for (int i = 0; i < R - 1; i++)
for (int j = 0; j < C; j++)
V[i][j] = _V[i][j];
for (int i = 0; i < C; i++)
for (int j = 0; j < C; j++)
solve(i, j);
}
void changeH(int P, int Q, int W) {
H[P][Q] = W;
for (int i = 0; i < C; i++)
for (int j = 0; j < C; j++)
solve(i, j);
}
void changeV(int P, int Q, int W) {
V[P][Q] = W;
for (int i = 0; i < C; i++)
for (int j = 0; j < C; j++)
solve(i, j);
}
int escape(int a, int b) {
return CACHE[a][b];
}
Compilation message (stderr)
grader.c: In function 'int main()':
grader.c:15:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
15 | int res;
| ^~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |