CSES - Aalto Competitive Programming 2024 - wk1 - Mon - Results
Submission details
Task:Stone game
Sender:ZDHKLV
Submission time:2024-09-02 17:32:53 +0300
Language:C++11
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.00 sdetails
#10ACCEPTED0.00 sdetails
#11ACCEPTED0.00 sdetails
#12ACCEPTED0.00 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.00 sdetails
#17ACCEPTED0.00 sdetails
#18ACCEPTED0.00 sdetails
#19ACCEPTED0.00 sdetails
#20ACCEPTED0.00 sdetails
#21ACCEPTED0.01 sdetails
#22ACCEPTED0.06 sdetails
#23ACCEPTED0.00 sdetails
#24ACCEPTED0.00 sdetails
#25ACCEPTED0.01 sdetails
#26ACCEPTED0.00 sdetails
#27ACCEPTED0.01 sdetails
#28ACCEPTED0.00 sdetails
#29ACCEPTED0.00 sdetails
#30ACCEPTED0.01 sdetails
#31ACCEPTED0.09 sdetails
#32ACCEPTED0.45 sdetails
#33ACCEPTED0.01 sdetails
#34ACCEPTED0.01 sdetails
#35ACCEPTED0.07 sdetails
#36ACCEPTED0.00 sdetails
#37ACCEPTED0.02 sdetails
#38ACCEPTED0.01 sdetails
#39ACCEPTED0.01 sdetails
#40ACCEPTED0.02 sdetails
#41ACCEPTED0.31 sdetails
#42--details
#43ACCEPTED0.01 sdetails
#44ACCEPTED0.01 sdetails
#45ACCEPTED0.24 sdetails
#46ACCEPTED0.00 sdetails
#47ACCEPTED0.06 sdetails
#48ACCEPTED0.02 sdetails
#49ACCEPTED0.01 sdetails
#50ACCEPTED0.07 sdetails
#51ACCEPTED0.00 sdetails
#52ACCEPTED0.00 sdetails
#53ACCEPTED0.12 sdetails
#54ACCEPTED0.03 sdetails
#55ACCEPTED0.75 sdetails
#56ACCEPTED0.02 sdetails
#57ACCEPTED0.06 sdetails
#58ACCEPTED0.01 sdetails
#59ACCEPTED0.01 sdetails
#60ACCEPTED0.11 sdetails

Compiler report

input/code.cpp: In function 'int main(int, char**)':
input/code.cpp:71:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   71 |     scanf("%d %d", &A, &B);
      |     ~~~~~^~~~~~~~~~~~~~~~~

Code

#include <stdio.h>
#include <stdlib.h>

int UOLEVI = 0;
int MAIJA = 1;

int play_rec(int a, int b, int player, int ***seen) {

    if (seen[a][b][player] != -1) {
        return -1;
    }

    for (int x = 1; x <= a; x++) {
        int rec = play_rec(a - x, b, (player+1)%2, seen);
        if (rec == player) {
            seen[a][b][player] = player;
            return player;
        }
    }

    for (int y = 1; y <= b; y++) {
        int rec = play_rec(a, b - y, (player+1)%2, seen);
        if (rec == player) {
            seen[a][b][player] = player;
            return player;
        }
    }

    for (int x = 1; x <= a; x++) {
        int rec = play_rec(a - x, b + x, (player+1)%2, seen);
        if (rec == player) {
            seen[a][b][player] = player;
            return player;
        }
    }

    for (int y = 1; y <= b; y++) {
        int rec = play_rec(a + y, b - y, (player+1)%2, seen);
        if (rec == player) {
            seen[a][b][player] = player;
            return player;
        }
    }

    return (player+1)%2;

}

void play(int A, int B) {

    int ***seen = (int ***) malloc(sizeof (int **) * (A+B+1));
    for (int i = 0; i <= A+B; i++) {
        seen[i] = (int **) malloc(sizeof (int *) * (A+B+1));
        for (int j = 0; j <= A+B; j++) {
            seen[i][j] = (int *) malloc(sizeof (int) * 2);
            seen[i][j][0] = -1;
            seen[i][j][1] = -1;
        }
    }

    int result = play_rec(A, B, UOLEVI, seen);

    if (result == UOLEVI) printf("Uolevi");
    else if (result == MAIJA) printf("Maija");
    else printf("Draw");

}

int main(int argc, char **argv) {
    int A, B;
    scanf("%d %d", &A, &B);
    play(A, B);
    return EXIT_SUCCESS;
}

Test details

Test 1

Verdict: ACCEPTED

input
3 4

correct output
Uolevi

user output
Uolevi

Test 2

Verdict: ACCEPTED

input
5 5

correct output
Maija

user output
Maija

Test 3

Verdict: ACCEPTED

input
1 1

correct output
Maija

user output
Maija

Test 4

Verdict: ACCEPTED

input
1 4

correct output
Uolevi

user output
Uolevi

Test 5

Verdict: ACCEPTED

input
5 3

correct output
Uolevi

user output
Uolevi

Test 6

Verdict: ACCEPTED

input
1 1

correct output
Maija

user output
Maija

Test 7

Verdict: ACCEPTED

input
5 2

correct output
Uolevi

user output
Uolevi

Test 8

Verdict: ACCEPTED

input
2 2

correct output
Maija

user output
Maija

Test 9

Verdict: ACCEPTED

input
1 5

correct output
Uolevi

user output
Uolevi

Test 10

Verdict: ACCEPTED

input
2 2

correct output
Maija

user output
Maija

Test 11

Verdict: ACCEPTED

input
6 8

correct output
Uolevi

user output
Uolevi

Test 12

Verdict: ACCEPTED

input
10 10

correct output
Maija

user output
Maija

Test 13

Verdict: ACCEPTED

input
2 2

correct output
Maija

user output
Maija

Test 14

Verdict: ACCEPTED

input
1 8

correct output
Uolevi

user output
Uolevi

Test 15

Verdict: ACCEPTED

input
10 6

correct output
Uolevi

user output
Uolevi

Test 16

Verdict: ACCEPTED

input
1 1

correct output
Maija

user output
Maija

Test 17

Verdict: ACCEPTED

input
10 4

correct output
Uolevi

user output
Uolevi

Test 18

Verdict: ACCEPTED

input
3 3

correct output
Maija

user output
Maija

Test 19

Verdict: ACCEPTED

input
1 10

correct output
Uolevi

user output
Uolevi

Test 20

Verdict: ACCEPTED

input
4 4

correct output
Maija

user output
Maija

Test 21

Verdict: ACCEPTED

input
60 72

correct output
Uolevi

user output
Uolevi

Test 22

Verdict: ACCEPTED

input
100 100

correct output
Maija

user output
Maija

Test 23

Verdict: ACCEPTED

input
19 19

correct output
Maija

user output
Maija

Test 24

Verdict: ACCEPTED

input
8 71

correct output
Uolevi

user output
Uolevi

Test 25

Verdict: ACCEPTED

input
91 55

correct output
Uolevi

user output
Uolevi

Test 26

Verdict: ACCEPTED

input
6 6

correct output
Maija

user output
Maija

Test 27

Verdict: ACCEPTED

input
95 34

correct output
Uolevi

user output
Uolevi

Test 28

Verdict: ACCEPTED

input
23 23

correct output
Maija

user output
Maija

Test 29

Verdict: ACCEPTED

input
2 97

correct output
Uolevi

user output
Uolevi

Test 30

Verdict: ACCEPTED

input
37 37

correct output
Maija

user output
Maija

Test 31

Verdict: ACCEPTED

input
119 144

correct output
Uolevi

user output
Uolevi

Test 32

Verdict: ACCEPTED

input
200 200

correct output
Maija

user output
Maija

Test 33

Verdict: ACCEPTED

input
38 38

correct output
Maija

user output
Maija

Test 34

Verdict: ACCEPTED

input
15 142

correct output
Uolevi

user output
Uolevi

Test 35

Verdict: ACCEPTED

input
181 110

correct output
Uolevi

user output
Uolevi

Test 36

Verdict: ACCEPTED

input
12 12

correct output
Maija

user output
Maija

Test 37

Verdict: ACCEPTED

input
190 67

correct output
Uolevi

user output
Uolevi

Test 38

Verdict: ACCEPTED

input
46 46

correct output
Maija

user output
Maija

Test 39

Verdict: ACCEPTED

input
3 194

correct output
Uolevi

user output
Uolevi

Test 40

Verdict: ACCEPTED

input
73 73

correct output
Maija

user output
Maija

Test 41

Verdict: ACCEPTED

input
178 215

correct output
Uolevi

user output
Uolevi

Test 42

Verdict:

input
300 300

correct output
Maija

user output
(empty)

Test 43

Verdict: ACCEPTED

input
56 56

correct output
Maija

user output
Maija

Test 44

Verdict: ACCEPTED

input
22 213

correct output
Uolevi

user output
Uolevi

Test 45

Verdict: ACCEPTED

input
271 165

correct output
Uolevi

user output
Uolevi

Test 46

Verdict: ACCEPTED

input
17 17

correct output
Maija

user output
Maija

Test 47

Verdict: ACCEPTED

input
285 100

correct output
Uolevi

user output
Uolevi

Test 48

Verdict: ACCEPTED

input
69 69

correct output
Maija

user output
Maija

Test 49

Verdict: ACCEPTED

input
4 291

correct output
Uolevi

user output
Uolevi

Test 50

Verdict: ACCEPTED

input
110 110

correct output
Maija

user output
Maija

Test 51

Verdict: ACCEPTED

input
90 7

correct output
Uolevi

user output
Uolevi

Test 52

Verdict: ACCEPTED

input
21 21

correct output
Maija

user output
Maija

Test 53

Verdict: ACCEPTED

input
134 134

correct output
Maija

user output
Maija

Test 54

Verdict: ACCEPTED

input
183 72

correct output
Uolevi

user output
Uolevi

Test 55

Verdict: ACCEPTED

input
277 232

correct output
Uolevi

user output
Uolevi

Test 56

Verdict: ACCEPTED

input
245 54

correct output
Uolevi

user output
Uolevi

Test 57

Verdict: ACCEPTED

input
98 98

correct output
Maija

user output
Maija

Test 58

Verdict: ACCEPTED

input
55 55

correct output
Maija

user output
Maija

Test 59

Verdict: ACCEPTED

input
23 152

correct output
Uolevi

user output
Uolevi

Test 60

Verdict: ACCEPTED

input
130 130

correct output
Maija

user output
Maija