Submission #234119

#TimeUsernameProblemLanguageResultExecution timeMemory
234119tinjyuWombats (IOI13_wombats)C++14
55 / 100
20084 ms41848 KiB
#include "wombats.h"
#include <iostream>
using namespace std;
long long int h[5005][205],v[5005][205],r,c,dp[5005][200];
void init(int R, int C, int H[5000][200], int V[5000][200]) {
    r=R;
    c=C;
    //cout<<r<<" "<<c<<endl;
    for(int i=0;i<r-1;i++)
    {
    	for(int j=0;j<c;j++)
    	{
    		v[i][j]=V[i][j];
    		
		}
	}
	for(int i=0;i<r;i++)
	{
		for(int j=0;j<c-1;j++)h[i][j]=H[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;
	long long int tmp=0;
	
	for(int i=v1-1;i>=0;i--)
	{
		tmp+=h[0][i];
		dp[0][i]=tmp;
	}
	tmp=0;
	for(int i=v1+1;i<c;i++)
	{
		tmp+=h[0][i-1];
		dp[0][i]=tmp;
	}
	for(int i=0;i<c;i++)
	{
		//cout<<dp[0][i]<<" ";
	}
	//cout<<endl;
	for(int i=0;i<r-1;i++)
	{
		long long int mi=dp[i][0];
		for(int j=0;j<c-1;j++)
		{
			mi=min(mi+h[i][j],dp[i][j+1]);
			dp[i][j+1]=mi;
			dp[i+1][j+1]=mi;
		}
		mi=dp[i][c-1];
		for(int j=c-2;j>=0;j--)
		{
			mi=min(mi+h[i][j],dp[i][j]);
			dp[i][j]=mi;
			dp[i+1][j]=mi;
		}
		for(int j=0;j<=c-1;j++)
		{
			//cout<<dp[i][j]<<" ";
		}
		//cout<<endl;
		for(int j=0;j<c;j++)
		{
			dp[i+1][j]=dp[i][j]+v[i][j];
			//cout<<dp[i][j]<<" "<<v[i][j]<<"  ";
		}
		//cout<<endl;
	}
	long long int i=r-1;
	long long int mi=dp[r-1][0];
	for(int j=0;j<c-1;j++)
	{
		mi=min(mi+h[i][j],dp[i][j+1]);
		dp[i][j+1]=mi;
		dp[i+1][j+1]=mi;
	}
	mi=dp[r-1][c-1];
	for(int j=c-2;j>=0;j--)
	{
		mi=min(mi+h[i][j],dp[i][j]);
		dp[i][j]=mi;
		dp[i+1][j]=mi;
	}
	for(int j=0;j<c;j++)
	{
		//cout<<dp[i][j]<<" ";
	}
	//cout<<endl;
    return dp[r-1][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]
  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...