Submission #587137

#TimeUsernameProblemLanguageResultExecution timeMemory
587137usuyusWombats (IOI13_wombats)C++14
55 / 100
20062 ms19436 KiB
#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 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...