Submission #418186


Source Code Expand

#include <cstdio>
#include <algorithm>
using namespace std;
const int INF=10000000;
int dp[1002][1002];
int main(){
	int A,B,M,i,j,sum=0;
	int a[1000];
	int b[1000];
	for(i=0;i<1001;i++)
		for(j=0;j<1001;j++)
			dp[i][j]=INF;
	scanf("%d %d",&A,&B);
	for(i=0;i<1002;i++){
		dp[i][B+1]=(i%2*2-1)*INF;
		dp[A+1][i]=(i%2*2-1)*INF;
	}
	for(i=0;i<A;i++){
		scanf("%d",&a[i]);
		sum+=a[i];
	}
	for(i=0;i<B;i++){
		scanf("%d",&b[i]);
		sum+=b[i];
	}
	dp[A][B]=0;
	for(i=A;i>=0;i--){
		for(j=B;j>=0;j--){
			if(i!=A||j!=B){
				if((i+j)%2)
					if(i==A)
						dp[i][j]=dp[i][j+1]-b[j];
					else if(j==B)
						dp[i][j]=dp[i+1][j]-a[i];
					else
						dp[i][j]=min(dp[i][j+1]-b[j],dp[i+1][j]-a[i]);
				else
					if(i==A)
						dp[i][j]=dp[i][j+1]+b[j];
					else if(j==B)
						dp[i][j]=dp[i+1][j]+a[i];
					else
						dp[i][j]=max(dp[i][j+1]+b[j],dp[i+1][j]+a[i]);
			}
		}
	}
	printf("%d\n",(sum+dp[0][0])/2);
	return 0;
}

Submission Info

Submission Time
Task B - ゲーム
User base64go
Language C++ (G++ 4.6.4)
Score 3
Code Size 966 Byte
Status AC
Exec Time 35 ms
Memory 4760 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:13:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
./Main.cpp:19:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
./Main.cpp:23:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]

Judge Result

Set Name All
Score / Max Score 3 / 3
Status
AC × 5
Set Name Test Cases
All 00, 01, 02, 90, 91
Case Name Status Exec Time Memory
00 AC 30 ms 4636 KiB
01 AC 32 ms 4708 KiB
02 AC 35 ms 4712 KiB
90 AC 29 ms 4760 KiB
91 AC 29 ms 4712 KiB