Submission #1350819
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define for_(i,a,b) for(int i=(a);i<(b);++i)
int n, m, a[55], b[55], dp[2][2][55][55][55][55];
int rec(int cur_a, int cur_b, int prv_a, int prv_b, int sum_a, int sum_b, int turn, int pass) {
if (pass == 2) return 0;
if (cur_a == n && cur_b == m && prv_a == n && prv_b == m) return 0;
int& res = dp[turn][pass][cur_a][cur_b][prv_a][prv_b];
if (abs(res) != 1e9) return res;
if (turn) {
if (cur_b < m) {
int nxt_sum_a = (b[cur_b] == -1 ? 0 : sum_a), nxt_sum_b = sum_b + (b[cur_b] == -1 ? 0 : b[cur_b]);
res = min(res, rec(cur_a, cur_b + 1, (b[cur_b] == -1 ? cur_a : prv_a), prv_b, nxt_sum_a, nxt_sum_b, 0, 0));
}
res = min(res, rec(cur_a, cur_b, cur_a, cur_b, 0, 0, 0, (cur_a == prv_a && cur_b == prv_b ? pass + 1 : 0)) + sum_a - sum_b);
} else {
if (cur_a < n) {
int nxt_sum_a = sum_a + (a[cur_a] == -1 ? 0 : a[cur_a]), nxt_sum_b = (a[cur_a] == -1 ? 0 : sum_b);
res = max(res, rec(cur_a + 1, cur_b, prv_a, (a[cur_a] == -1 ? cur_b : prv_b), nxt_sum_a, nxt_sum_b, 1, 0));
}
res = max(res, rec(cur_a, cur_b, cur_a, cur_b, 0, 0, 1, (cur_a == prv_a && cur_b == prv_b ? pass + 1 : 0)) + sum_a - sum_b);
}
return res;
}
int main() {
cin >> n >> m;
for_(i,0,n) cin >> a[i];
for_(i,0,m) cin >> b[i];
for_(t,0,2) for_(p,0,2) for_(i,0,55) for_(j,0,55) for_(ii,0,55) for_(jj,0,55) dp[t][p][i][j][ii][jj] = (t ? 1e9 : -(1e9));
cout << rec(0, 0, 0, 0, 0, 0, 0, 0) << endl;
}
Submission Info
Submission Time |
|
Task |
D - インビジブル |
User |
tsukasa_diary |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
1494 Byte |
Status |
AC |
Exec Time |
60 ms |
Memory |
143232 KB |
Judge Result
Set Name |
All |
Score / Max Score |
100 / 100 |
Status |
|
Set Name |
Test Cases |
All |
00_sample_00, 00_sample_01, 00_sample_02, 30_random_small_000, 30_random_small_001, 30_random_small_002, 30_random_small_003, 30_random_small_004, 30_random_small_005, 30_random_small_006, 30_random_small_007, 30_random_small_008, 30_random_small_009, 31_random_skewed_000, 31_random_skewed_001, 31_random_skewed_002, 31_random_skewed_003, 31_random_skewed_004, 32_random_skewed_000, 32_random_skewed_001, 32_random_skewed_002, 32_random_skewed_003, 32_random_skewed_004, 33_random_frequent_invisible_000, 33_random_frequent_invisible_001, 33_random_frequent_invisible_002, 33_random_frequent_invisible_003, 33_random_frequent_invisible_004, 35_random_all_invisible_000, 36_random_all_same_score_000, 37_increasing_000, 38_decreasing_000, 40_random_max_000, 40_random_max_001, 40_random_max_002, 40_random_max_003, 40_random_max_004 |
Case Name |
Status |
Exec Time |
Memory |
00_sample_00 |
AC |
52 ms |
143232 KB |
00_sample_01 |
AC |
52 ms |
143232 KB |
00_sample_02 |
AC |
52 ms |
143232 KB |
30_random_small_000 |
AC |
52 ms |
143232 KB |
30_random_small_001 |
AC |
52 ms |
143232 KB |
30_random_small_002 |
AC |
52 ms |
143232 KB |
30_random_small_003 |
AC |
52 ms |
143232 KB |
30_random_small_004 |
AC |
52 ms |
143232 KB |
30_random_small_005 |
AC |
52 ms |
143232 KB |
30_random_small_006 |
AC |
52 ms |
143232 KB |
30_random_small_007 |
AC |
52 ms |
143232 KB |
30_random_small_008 |
AC |
52 ms |
143232 KB |
30_random_small_009 |
AC |
52 ms |
143232 KB |
31_random_skewed_000 |
AC |
52 ms |
143232 KB |
31_random_skewed_001 |
AC |
52 ms |
143232 KB |
31_random_skewed_002 |
AC |
52 ms |
143232 KB |
31_random_skewed_003 |
AC |
52 ms |
143232 KB |
31_random_skewed_004 |
AC |
52 ms |
143232 KB |
32_random_skewed_000 |
AC |
52 ms |
143232 KB |
32_random_skewed_001 |
AC |
52 ms |
143232 KB |
32_random_skewed_002 |
AC |
52 ms |
143232 KB |
32_random_skewed_003 |
AC |
52 ms |
143232 KB |
32_random_skewed_004 |
AC |
52 ms |
143232 KB |
33_random_frequent_invisible_000 |
AC |
52 ms |
143232 KB |
33_random_frequent_invisible_001 |
AC |
53 ms |
143232 KB |
33_random_frequent_invisible_002 |
AC |
53 ms |
143232 KB |
33_random_frequent_invisible_003 |
AC |
52 ms |
143232 KB |
33_random_frequent_invisible_004 |
AC |
52 ms |
143232 KB |
35_random_all_invisible_000 |
AC |
52 ms |
143232 KB |
36_random_all_same_score_000 |
AC |
60 ms |
143232 KB |
37_increasing_000 |
AC |
60 ms |
143232 KB |
38_decreasing_000 |
AC |
60 ms |
143232 KB |
40_random_max_000 |
AC |
53 ms |
143232 KB |
40_random_max_001 |
AC |
54 ms |
143232 KB |
40_random_max_002 |
AC |
54 ms |
143232 KB |
40_random_max_003 |
AC |
54 ms |
143232 KB |
40_random_max_004 |
AC |
54 ms |
143232 KB |