제출 #768647

#제출 시각아이디문제언어결과실행 시간메모리
768647boris_mihov웜뱃 (IOI13_wombats)C++17
27 / 100
534 ms18204 KiB
#include "wombats.h" #include <algorithm> #include <iostream> #include <numeric> #include <vector> typedef long long llong; const int MAXR = 5000 + 10; const int MAXC = 100 + 10; const int INF = 2e9; int r, c; int costLeft[MAXR][MAXC]; int costDown[MAXR][MAXC]; int dp[MAXC][MAXR][MAXC]; int prefix[MAXR]; int suffix[MAXR]; void calcDP() { for (int end = 1 ; end <= c ; ++end) { int sum = 0; for (int col = end - 1 ; col >= 1 ; col--) { sum += costLeft[r][col]; dp[end][r][col] = sum; } for (int col = end + 1 ; col <= c ; col++) { sum += costLeft[r][col - 1]; dp[end][r][col] = sum; } for (int row = r - 1 ; row >= 1 ; --row) { prefix[0] = suffix[c + 1] = INF; for (int col = 1 ; col <= c ; ++col) { prefix[col] = std::min(prefix[col - 1] + costLeft[row][col - 1], dp[end][row + 1][col] + costDown[row][col]); } for (int col = c ; col >= 1 ; --col) { suffix[col] = std::min(suffix[col + 1] + costLeft[row][col], dp[end][row + 1][col] + costDown[row][col]); } for (int col = 1 ; col <= c ; ++col) { dp[end][row][col] = std::min(prefix[col], suffix[col]); } } } } void init(int R, int C, int H[5000][200], int V[5000][200]) { r = R; c = C; for (int i = 1 ; i <= r ; ++i) { for (int j = 1 ; j < c ; ++j) { costLeft[i][j] = H[i - 1][j - 1]; } } for (int i = 1 ; i < r ; ++i) { for (int j = 1 ; j <= c ; ++j) { costDown[i][j] = V[i - 1][j - 1]; } } calcDP(); } void changeH(int P, int Q, int W) { costLeft[P + 1][Q + 1] = W; calcDP(); } void changeV(int P, int Q, int W) { costDown[P + 1][Q + 1] = W; calcDP(); } int escape(int V1, int V2) { V1++; V2++; return dp[V2][1][V1]; }

컴파일 시 표준 에러 (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...