제출 #619636

#제출 시각아이디문제언어결과실행 시간메모리
619636cfalas웜뱃 (IOI13_wombats)C++17
39 / 100
13048 ms22140 KiB
#include "wombats.h"
#include<bits/stdc++.h>
using namespace std;

int h[5000][200];
int v[5000][200];
int r, c;
int dp[21][5001][21];
#define MOD 1000000007
int ph[5000][200];

int hdist(int y, int x1, int x2){
	return abs(ph[y][x2]-ph[y][x1]);
}

void solve(int start){
	for(int i=0;i<r;i++){
		for(int j=0;j<c;j++){
			ph[i][j+1] = ph[i][j] + h[i][j];
		}
	}
	for(int i=0;i<c;i++) dp[start][0][i] = hdist(0, start, i);
	//for(int i=0;i<c;i++) cout<<dp[start][0][i]<<" ";
	//cout<<endl;
	for(int layer=1;layer<r;layer++){
		for(int prev=0;prev<c;prev++){
			dp[start][layer][prev] = MOD;
			for(int trans=0;trans<c;trans++){
				dp[start][layer][prev] = min(dp[start][layer][prev], dp[start][layer-1][trans] + v[layer-1][trans] + hdist(layer, trans, prev));
			}
			//cout<<dp[start][layer][prev]<<" ";
		}
		//cout<<endl;
	}
}

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];
		}
	}
}

void changeH(int P, int Q, int W) {
    /* ... */
	h[P][Q] = W;
}

void changeV(int P, int Q, int W) {
	// a[P] = W;
	v[P][Q] = W;
}

int escape(int V1, int V2) {
	solve(V1);
	return dp[V1][r-1][V2];
}

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