Submission #6431709
Source Code Expand
#include <bits/stdc++.h> #define debug(x) cerr << #x << ": " << x << '\n'; using namespace std; using ll = long long; using P = pair<int, int>; const int INF = (int)1e9; int main(void){ int A, B; cin >> A >> B; vector<int> a(A), b(B); for(int i = 0; i < A; i++) cin >> a[i]; for(int i = 0; i < B; i++) cin >> b[i]; vector<vector<int>> dp(A+1, vector<int>(B+1, 0)); for(int i = 0; i <= A; i++){ for(int j = 0; j <= B; j++){ if(i == 0 and j == 0) continue; if((A+B-i-j)&1){ if(i == 0) dp[i][j] = dp[i][j-1]; else if(j == 0) dp[i][j] = dp[i-1][j]; else dp[i][j] = min(dp[i-1][j], dp[i][j-1]); }else{ if(i == 0) dp[i][j] = dp[i][j-1] + b[B-j]; else if(j == 0) dp[i][j] = dp[i-1][j] + a[A-i]; else dp[i][j] = max(dp[i-1][j] + a[A-i], dp[i][j-1] + b[B-j]); } // printf("dp[%d][%d] = %d\n", i, j, dp[i][j]); } } cout << dp[A][B] << '\n'; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - ゲーム |
User | yna87 |
Language | C++14 (GCC 5.4.1) |
Score | 3 |
Code Size | 1094 Byte |
Status | AC |
Exec Time | 7 ms |
Memory | 4224 KB |
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 | 5 ms | 2944 KB |
02 | AC | 7 ms | 4224 KB |
90 | AC | 1 ms | 256 KB |
91 | AC | 1 ms | 256 KB |