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 "wombats.h"
#include <bits/stdc++.h>
using namespace std;
int R, C, H[5000][200], V[5000][200];
int ans[200][200];
bool calced[200];
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; j++) {
H[i][j] = _H[i][j];
V[i][j] = _V[i][j];
}
}
for (int i=0; i<C; i++) calced[i] = false;
}
void changeH(int P, int Q, int W) {
H[P][Q] = W;
for (int i=0; i<C; i++) calced[i] = false;
}
void changeV(int P, int Q, int W) {
V[P][Q] = W;
for (int i=0; i<C; i++) calced[i] = false;
}
void calc_ans(int S) {
int dp[200], lft[200], rgt[200];
dp[S] = 0;
for (int i=S+1; i<C; i++) dp[i] = dp[i-1] + H[0][i-1];
for (int i=S-1; i>=0; i--) dp[i] = dp[i+1] + H[0][i];
for (int i=0; i<C; i++) dp[i] += V[0][i];
for (int i=1; i<R; i++) {
lft[0] = dp[0];
for (int j=1; j<C; j++) {
lft[j] = min(dp[j], lft[j-1] + H[i][j-1]);
}
rgt[C-1] = dp[C-1];
for (int j=C-2; j>=0; j--) {
rgt[j] = min(dp[j], rgt[j+1] + H[i][j]);
}
for (int j=0; j<C; j++) {
dp[j] = min(lft[j], rgt[j]) + V[i][j];
}
}
for (int i=0; i<C; i++) ans[S][i] = dp[i];
calced[S] = true;
}
int escape(int V1, int V2) {
if (!calced[V1]) calc_ans(V1);
return ans[V1][V2];
}
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... |