CSES - BAPC 2017 - Results
Submission details
Task:Irrational Division
Sender:Antti Röyskö
Submission time:2017-10-24 19:14:11 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.05 sdetails
#4ACCEPTED0.04 sdetails
#5ACCEPTED0.03 sdetails
#6ACCEPTED0.04 sdetails
#7ACCEPTED0.04 sdetails
#8ACCEPTED0.02 sdetails
#9ACCEPTED0.04 sdetails
#10ACCEPTED0.03 sdetails
#11ACCEPTED0.04 sdetails
#12ACCEPTED0.04 sdetails
#13ACCEPTED0.03 sdetails
#14ACCEPTED0.04 sdetails
#15ACCEPTED0.03 sdetails
#16ACCEPTED0.04 sdetails
#17ACCEPTED0.04 sdetails
#18ACCEPTED0.06 sdetails
#19ACCEPTED0.05 sdetails
#20ACCEPTED0.04 sdetails
#21ACCEPTED0.04 sdetails
#22ACCEPTED0.04 sdetails
#23ACCEPTED0.04 sdetails
#24ACCEPTED0.03 sdetails
#25ACCEPTED0.03 sdetails
#26ACCEPTED0.03 sdetails
#27ACCEPTED0.04 sdetails
#28ACCEPTED0.03 sdetails
#29ACCEPTED0.03 sdetails
#30ACCEPTED0.03 sdetails
#31ACCEPTED0.04 sdetails
#32ACCEPTED0.03 sdetails
#33ACCEPTED0.05 sdetails
#34ACCEPTED0.03 sdetails
#35ACCEPTED0.05 sdetails
#36ACCEPTED0.03 sdetails
#37ACCEPTED0.05 sdetails
#38ACCEPTED0.05 sdetails
#39ACCEPTED0.04 sdetails
#40ACCEPTED0.04 sdetails
#41ACCEPTED0.04 sdetails
#42ACCEPTED0.05 sdetails
#43ACCEPTED0.05 sdetails
#44ACCEPTED0.04 sdetails
#45ACCEPTED0.03 sdetails
#46ACCEPTED0.05 sdetails
#47ACCEPTED0.04 sdetails
#48ACCEPTED0.04 sdetails
#49ACCEPTED0.04 sdetails
#50ACCEPTED0.04 sdetails
#51ACCEPTED0.04 sdetails
#52ACCEPTED0.05 sdetails
#53ACCEPTED0.05 sdetails
#54ACCEPTED0.04 sdetails
#55ACCEPTED0.04 sdetails
#56ACCEPTED0.03 sdetails
#57ACCEPTED0.04 sdetails
#58ACCEPTED0.02 sdetails
#59ACCEPTED0.05 sdetails
#60ACCEPTED0.05 sdetails
#61ACCEPTED0.04 sdetails
#62ACCEPTED0.04 sdetails
#63ACCEPTED0.04 sdetails

Code

#include <iostream>
#include <algorithm>

const int N = 101;
int urc = -1;
int dp [N][N];
bool done[N][N];
int calc(int x, int y) {
	if (x == 0) return 0;
	if (y == 0) return 0;
	if (done[x][y]) return dp[x][y];
	int best = -N*N;
	int val = (x & 1) ? urc : -urc;
	val *= y & 1;
	for (int i = 1; i <= x; ++i) {
		best = std::max(best, (i & 1) * val - calc(y, x-i));
	}
	done[x][y] = true;
	dp[x][y] = best;
	return best;
}

int main() {
	int w, h;
	std::cin >> h >> w;
	if (w & 1) urc = 1;
	std::cout << calc(w, h) << '\n';
}

Test details

Test 1

Verdict: ACCEPTED

input
10 41

correct output
0

user output
0

Test 2

Verdict: ACCEPTED

input
13 65

correct output
1

user output
1

Test 3

Verdict: ACCEPTED

input
13 97

correct output
1

user output
1

Test 4

Verdict: ACCEPTED

input
14 89

correct output
0

user output
0

Test 5

Verdict: ACCEPTED

input
14 90

correct output
0

user output
0

Test 6

Verdict: ACCEPTED

input
19 28

correct output
2

user output
2

Test 7

Verdict: ACCEPTED

input
1 1

correct output
1

user output
1

Test 8

Verdict: ACCEPTED

input
1 3

correct output
1

user output
1

Test 9

Verdict: ACCEPTED

input
1 4

correct output
2

user output
2

Test 10

Verdict: ACCEPTED

input
20 37

correct output
0

user output
0

Test 11

Verdict: ACCEPTED

input
23 66

correct output
2

user output
2

Test 12

Verdict: ACCEPTED

input
28 11

correct output
0

user output
0

Test 13

Verdict: ACCEPTED

input
29 45

correct output
1

user output
1

Test 14

Verdict: ACCEPTED

input
2 1

correct output
0

user output
0

Test 15

Verdict: ACCEPTED

input
2 3

correct output
0

user output
0

Test 16

Verdict: ACCEPTED

input
2 4

correct output
0

user output
0

Test 17

Verdict: ACCEPTED

input
30 11

correct output
0

user output
0

Test 18

Verdict: ACCEPTED

input
33 27

correct output
1

user output
1

Test 19

Verdict: ACCEPTED

input
37 15

correct output
1

user output
1

Test 20

Verdict: ACCEPTED

input
3 1

correct output
1

user output
1

Test 21

Verdict: ACCEPTED

input
3 2

correct output
0

user output
0

Test 22

Verdict: ACCEPTED

input
3 3

correct output
1

user output
1

Test 23

Verdict: ACCEPTED

input
3 4

correct output
2

user output
2

Test 24

Verdict: ACCEPTED

input
3 81

correct output
1

user output
1

Test 25

Verdict: ACCEPTED

input
40 27

correct output
0

user output
0

Test 26

Verdict: ACCEPTED

input
43 22

correct output
0

user output
0

Test 27

Verdict: ACCEPTED

input
44 68

correct output
0

user output
0

Test 28

Verdict: ACCEPTED

input
4 1

correct output
0

user output
0

Test 29

Verdict: ACCEPTED

input
4 2

correct output
0

user output
0

Test 30

Verdict: ACCEPTED

input
4 4

correct output
0

user output
0

Test 31

Verdict: ACCEPTED

input
4 67

correct output
0

user output
0

Test 32

Verdict: ACCEPTED

input
50 41

correct output
0

user output
0

Test 33

Verdict: ACCEPTED

input
50 83

correct output
0

user output
0

Test 34

Verdict: ACCEPTED

input
54 22

correct output
0

user output
0

Test 35

Verdict: ACCEPTED

input
58 7

correct output
0

user output
0

Test 36

Verdict: ACCEPTED

input
61 57

correct output
1

user output
1

Test 37

Verdict: ACCEPTED

input
61 79

correct output
1

user output
1

Test 38

Verdict: ACCEPTED

input
61 89

correct output
1

user output
1

Test 39

Verdict: ACCEPTED

input
62 84

correct output
0

user output
0

Test 40

Verdict: ACCEPTED

input
66 26

correct output
0

user output
0

Test 41

Verdict: ACCEPTED

input
66 53

correct output
0

user output
0

Test 42

Verdict: ACCEPTED

input
67 8

correct output
0

user output
0

Test 43

Verdict: ACCEPTED

input
67 91

correct output
1

user output
1

Test 44

Verdict: ACCEPTED

input
69 84

correct output
2

user output
2

Test 45

Verdict: ACCEPTED

input
6 64

correct output
0

user output
0

Test 46

Verdict: ACCEPTED

input
73 70

correct output
0

user output
0

Test 47

Verdict: ACCEPTED

input
76 90

correct output
0

user output
0

Test 48

Verdict: ACCEPTED

input
78 1

correct output
0

user output
0

Test 49

Verdict: ACCEPTED

input
78 18

correct output
0

user output
0

Test 50

Verdict: ACCEPTED

input
79 67

correct output
1

user output
1

Test 51

Verdict: ACCEPTED

input
82 13

correct output
0

user output
0

Test 52

Verdict: ACCEPTED

input
82 55

correct output
0

user output
0

Test 53

Verdict: ACCEPTED

input
84 32

correct output
0

user output
0

Test 54

Verdict: ACCEPTED

input
87 36

correct output
0

user output
0

Test 55

Verdict: ACCEPTED

input
8 68

correct output
0

user output
0

Test 56

Verdict: ACCEPTED

input
8 93

correct output
0

user output
0

Test 57

Verdict: ACCEPTED

input
90 43

correct output
0

user output
0

Test 58

Verdict: ACCEPTED

input
90 9

correct output
0

user output
0

Test 59

Verdict: ACCEPTED

input
91 38

correct output
0

user output
0

Test 60

Verdict: ACCEPTED

input
96 13

correct output
0

user output
0

Test 61

Verdict: ACCEPTED

input
98 84

correct output
0

user output
0

Test 62

Verdict: ACCEPTED

input
98 90

correct output
0

user output
0

Test 63

Verdict: ACCEPTED

input
9 77

correct output
1

user output
1