Submission #1307120
Source Code Expand
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<climits>
#include<iostream>
#include<algorithm>
#include<stack>
#include<queue>
#include<vector>
#include<list>
#include<map>
#include<set>
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
#define pb push_back
int dy[]={0, 0, 1, -1, 0};
int dx[]={1, -1, 0, 0, 0};
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
int a[1001];
int b[1001];
ll dp[1001][1001][2][2];
int main(){
int A,B;
scanf("%d%d",&A,&B);
for(int i = 1;i <= A;i++)
scanf("%d",&a[i]);
for(int i = 1;i <= B;i++)
scanf("%d",&b[i]);
dp[A][B][0][0] = dp[A][B][0][1] = dp[A][B][1][0] = dp[A][B][1][1] = 0;
for(int i = A;i >= 0;i--){
for(int j = B;j >= 0;j--){
if(i == A && j == B)
continue;
ll c,d;
if(i < A)
c = dp[i + 1][j][1][0] + a[i + 1];
else
c = 0;
if(j < B)
d = dp[i][j + 1][1][0] + b[j + 1];
else
d = 0;
if(c > d /*|| (c == d && dp[i + 1][j][1][1] < dp[i][j + 1][1][1])*/){
dp[i][j][0][0] = c;
dp[i][j][0][1] = dp[i + 1][j][1][1];
}else{
dp[i][j][0][0] = d;
dp[i][j][0][1] = dp[i][j + 1][1][1];
}
if(i < A)
c = dp[i + 1][j][0][1] + a[i + 1];
else
c = 0;
if(j < B)
d = dp[i][j + 1][0][1] + b[j + 1];
else
d = 0;
if(c > d /*|| (c == d && dp[i + 1][j][0][0] < dp[i][j + 1][0][0])*/){
dp[i][j][1][1] = c;
dp[i][j][1][0] = dp[i + 1][j][0][0];
}else{
dp[i][j][1][1] = d;
dp[i][j][1][0] = dp[i][j + 1][0][0];
}
}
}
/*for(int i = 0;i <= A;i++){
for(int j = 0;j <= B;j++){
printf("%lld %lld %lld %lld ",dp[i][j][0][0],dp[i][j][0][1],dp[i][j][1][0],dp[i][j][1][1]);
}
printf("\n");
}*/
printf("%lld\n",dp[0][0][0][0]);
return 0;
}
Submission Info
Submission Time |
|
Task |
B - ゲーム |
User |
kyawakyawa |
Language |
C++14 (GCC 5.4.1) |
Score |
3 |
Code Size |
2391 Byte |
Status |
AC |
Exec Time |
16 ms |
Memory |
31616 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:32:24: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&A,&B);
^
./Main.cpp:35:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&a[i]);
^
./Main.cpp:37:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&b[i]);
^
Judge Result
Set Name |
All |
Score / Max Score |
3 / 3 |
Status |
|
Set Name |
Test Cases |
All |
00, 01, 02, 90, 91 |
Case Name |
Status |
Exec Time |
Memory |
00 |
AC |
1 ms |
256 KB |
01 |
AC |
12 ms |
26880 KB |
02 |
AC |
16 ms |
31616 KB |
90 |
AC |
1 ms |
256 KB |
91 |
AC |
1 ms |
256 KB |