CSES - BAPC 2017 - Results
Submission details
Task:Irrational Division
Sender:KnowYourArchitecture
Submission time:2017-10-24 21:12:49 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.04 sdetails
#20.04 sdetails
#30.05 sdetails
#4ACCEPTED0.04 sdetails
#5ACCEPTED0.03 sdetails
#6ACCEPTED0.04 sdetails
#70.05 sdetails
#80.03 sdetails
#9ACCEPTED0.04 sdetails
#10ACCEPTED0.05 sdetails
#11ACCEPTED0.03 sdetails
#12ACCEPTED0.02 sdetails
#130.04 sdetails
#14ACCEPTED0.03 sdetails
#15ACCEPTED0.04 sdetails
#16ACCEPTED0.03 sdetails
#17ACCEPTED0.05 sdetails
#180.03 sdetails
#190.04 sdetails
#200.03 sdetails
#210.04 sdetails
#220.04 sdetails
#23ACCEPTED0.04 sdetails
#240.03 sdetails
#25ACCEPTED0.04 sdetails
#260.04 sdetails
#27ACCEPTED0.05 sdetails
#28ACCEPTED0.04 sdetails
#29ACCEPTED0.04 sdetails
#30ACCEPTED0.04 sdetails
#31ACCEPTED0.05 sdetails
#32ACCEPTED0.04 sdetails
#33ACCEPTED0.04 sdetails
#34ACCEPTED0.04 sdetails
#35ACCEPTED0.03 sdetails
#360.04 sdetails
#370.04 sdetails
#380.04 sdetails
#39ACCEPTED0.05 sdetails
#40ACCEPTED0.04 sdetails
#41ACCEPTED0.04 sdetails
#420.04 sdetails
#430.04 sdetails
#44ACCEPTED0.05 sdetails
#45ACCEPTED0.04 sdetails
#460.03 sdetails
#47ACCEPTED0.04 sdetails
#48ACCEPTED0.05 sdetails
#49ACCEPTED0.04 sdetails
#500.04 sdetails
#51ACCEPTED0.05 sdetails
#52ACCEPTED0.04 sdetails
#53ACCEPTED0.03 sdetails
#540.04 sdetails
#55ACCEPTED0.04 sdetails
#56ACCEPTED0.05 sdetails
#57ACCEPTED0.05 sdetails
#58ACCEPTED0.04 sdetails
#590.04 sdetails
#60ACCEPTED0.05 sdetails
#61ACCEPTED0.06 sdetails
#62ACCEPTED0.05 sdetails
#630.04 sdetails

Code

#include <bits/stdc++.h>
#define ll unsigned long long

typedef long double ld;

using namespace std;

map<int, map<int, int>> dpa, dpb;
//int dpa[200][200];
//int dpb[200][200];
int sumdp[200][200];

int p, q;

int sdp(int a, int b) {
  if (a < 0 || b < 0) return 0;
  return sumdp[a][b];
}
int area(int x1, int y1, int x2, int y2) {
  if ((x2-x1+1)%2 == 0 || (y2-y1+1)%2 == 0) return 0;
  if (x2%2 == y2%2) return 1;
  return -1;
}


int main() {

  cin >> p >> q;

  /*for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      cout<<area(0, 0, i, j) << " ";
    }
    cout << endl;
  }*/
  //return 0;

  cout << 2*area(0,0,p-1,q)<<endl;
  return 0;

  for (int i = 0; i < 200; i++) {
    for (int j = 0; j < 200; j++) {
      sumdp[i][j] = i%2 == j%2;
    }
  }
  for (int i = 1; i < 200; i++) {
    sumdp[0][i] += sumdp[0][i-1];
    sumdp[i][0] += sumdp[i-1][0];
  }
  for (int i = 1; i < 200; i++) {
    for (int j = 1; j < 200; j++) {
      sumdp[i][j] = sumdp[i-1][j] + sumdp[i][j-1] - sumdp[i-1][j-1];
    }
  }

  for (int i = 0; i < p; i++) dpb[i][q-1] = area(i, q-1, p, 1);
  for (int i = 0; i < q; i++) dpb[p-1][i] = area(i, q-1, p, 1);

  for (int y = 0; y < p; y++) {
    for (int x = 0; x < q; x++) {
      int res = -1e6;
      for (int i = x+1; i < q; i++) {
        res = max(res,
          dpb[y][i] + area(x, y, i, q)
        );
      }
      dpa[y][x] = res;
      
      res = 1e6;
      for (int i = y+1; i < p; i++) {
        res = min(res,
          dpa[i][x] - area(x, y, p, i)
        );
      }
      dpb[y][x] = res;
    }
  }

  for (int y = 0; y <= p; y++) {
    for (int x = 0; x <= q; x++) {
      cout << dpa[y][x] << "\t";
    }
    cout << endl;
  }
  for (int y = 0; y <= p; y++) {
    for (int x = 0; x <= q; x++) {
      cout << dpb[y][x] << "\t";
    }
    cout << endl;
  }

  return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
10 41

correct output
0

user output
0

Test 2

Verdict:

input
13 65

correct output
1

user output
0

Test 3

Verdict:

input
13 97

correct output
1

user output
0

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:

input
1 1

correct output
1

user output
0

Test 8

Verdict:

input
1 3

correct output
1

user output
0

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:

input
29 45

correct output
1

user output
0

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:

input
33 27

correct output
1

user output
0

Test 19

Verdict:

input
37 15

correct output
1

user output
0

Test 20

Verdict:

input
3 1

correct output
1

user output
0

Test 21

Verdict:

input
3 2

correct output
0

user output
2

Test 22

Verdict:

input
3 3

correct output
1

user output
0

Test 23

Verdict: ACCEPTED

input
3 4

correct output
2

user output
2

Test 24

Verdict:

input
3 81

correct output
1

user output
0

Test 25

Verdict: ACCEPTED

input
40 27

correct output
0

user output
0

Test 26

Verdict:

input
43 22

correct output
0

user output
2

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:

input
61 57

correct output
1

user output
0

Test 37

Verdict:

input
61 79

correct output
1

user output
0

Test 38

Verdict:

input
61 89

correct output
1

user output
0

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:

input
67 8

correct output
0

user output
2

Test 43

Verdict:

input
67 91

correct output
1

user output
0

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:

input
73 70

correct output
0

user output
2

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:

input
79 67

correct output
1

user output
0

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:

input
87 36

correct output
0

user output
2

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:

input
91 38

correct output
0

user output
2

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:

input
9 77

correct output
1

user output
0