提出 #418186


ソースコード 拡げる

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

提出情報

提出日時
問題 B - ゲーム
ユーザ base64go
言語 C++ (G++ 4.6.4)
得点 3
コード長 966 Byte
結果 AC
実行時間 35 ms
メモリ 4760 KiB

コンパイルエラー

./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]

ジャッジ結果

セット名 All
得点 / 配点 3 / 3
結果
AC × 5
セット名 テストケース
All 00, 01, 02, 90, 91
ケース名 結果 実行時間 メモリ
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