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 <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
#include "wombats.h"
int R,C;
int H[5000][200];
int V[5000][200];
int dp[5000][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-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];
}
}
}
void changeH(int P, int Q, int W) {
H[P][Q]=W;
}
void changeV(int P, int Q, int W) {
V[P][Q]=W;
}
int escape(int v1, int v2) {
dp[0][v1]=0;
int sum=0;
for(int i=v1-1;i>=0;i--){
sum+=H[0][i];
dp[0][i]=sum;
}
sum=0;
for(int i=v1;i<C-1;i++){
sum+=H[0][i];
dp[0][i+1]=sum;
}
int l[5000],r[5000];
for(int i=1;i<R;i++){
for(int j=0;j<C;j++){
l[j]=dp[i-1][j]+V[i-1][j];
if(j)l[j]=min(l[j],l[j-1]+H[i][j-1]);
}
for(int j=C-1;j>=0;j--){
r[j]=dp[i-1][j]+V[i-1][j];
if(j<C-1)r[j]=min(r[j],r[j+1]+H[i][j]);
}
for(int j=0;j<C;j++){
dp[i][j]=min(l[j],r[j]);
}
}
return dp[R-1][v2];
}
# | 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... |