CSES - Datatähti 2025 alku - Results
Submission details
Task:Kortit I
Sender:Emil
Submission time:2024-10-30 10:24:23 +0200
Language:Python3 (PyPy3)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.07 s1, 2, 3details
#20.06 s2, 3details
#30.06 s3details
#40.07 s3details
#50.07 s3details
#60.07 s3details
#70.07 s3details
#80.07 s3details
#90.07 s3details
#100.07 s3details
#110.07 s3details
#120.07 s3details
#130.07 s3details
#140.07 s3details
#150.07 s3details
#160.06 s3details
#170.06 s3details
#180.07 s3details
#190.07 s3details
#200.08 s3details

Code

def check_possible(n, a, b):
    if a + b > n or a > n or b > n:
        return False
    if n == 2 and ((a == 0 and b == 1) or (a == 1 and b == 0)):
        return False
    return True

def generate_game(n, a, b):
    if not check_possible(n, a, b):
        return None
    
    # Initialize arrays with the moves we'll make
    p1_moves = [0] * n
    p2_moves = [0] * n
    
    # Track which numbers we've used
    used1 = set()
    used2 = set()
    current_pos = 0
    
    # Handle p1 wins
    for _ in range(a):
        # Find highest unused number for p1
        for num in range(n, 0, -1):
            if num not in used1:
                p1_moves[current_pos] = num
                used1.add(num)
                break
        # Find lowest unused number for p2
        for num in range(1, n + 1):
            if num not in used2 and num < p1_moves[current_pos]:
                p2_moves[current_pos] = num
                used2.add(num)
                break
        current_pos += 1
    
    # Handle p2 wins
    for _ in range(b):
        # Find highest unused number for p2
        for num in range(n, 0, -1):
            if num not in used2:
                p2_moves[current_pos] = num
                used2.add(num)
                break
        # Find lowest unused number for p1
        for num in range(1, n + 1):
            if num not in used1 and num < p2_moves[current_pos]:
                p1_moves[current_pos] = num
                used1.add(num)
                break
        current_pos += 1
    
    # Handle remaining moves (ties)
    remaining = []
    for num in range(1, n + 1):
        if num not in used1:
            remaining.append(num)
    
    # Fill in the ties
    for num in remaining:
        p1_moves[current_pos] = num
        p2_moves[current_pos] = num
        current_pos += 1
    
    return p1_moves, p2_moves

def main():
    t = int(input())
    for _ in range(t):
        n, a, b = map(int, input().split())
        result = generate_game(n, a, b)
        if result is None:
            print("NO")
        else:
            p1_moves, p2_moves = result
            print("YES")
            print(*p1_moves)
            print(*p2_moves)

if __name__ == "__main__":
    main()

Test details

Test 1

Group: 1, 2, 3

Verdict:

input
54
4 4 0
3 1 3
3 2 2
4 0 4
...

correct output
NO
NO
NO
NO
NO
...

user output
YES
4 3 2 1
1 2 0 0
NO
NO

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 2

Group: 2, 3

Verdict:

input
284
6 1 0
5 0 2
7 1 5
7 7 5
...

correct output
NO
NO
YES
1 2 3 4 5 6 7 
2 3 4 5 6 1 7 
...

user output
YES
6 1 2 3 4 5
1 1 2 3 4 5
YES
1 2 3 4 5
...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 3

Group: 3

Verdict:

input
955
14 2 10
12 2 5
10 4 9
14 1 13
...

correct output
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 4

Group: 3

Verdict:

input
869
17 12 9
16 8 4
15 9 9
17 11 15
...

correct output
NO
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
NO
YES
16 15 14 13 12 11 10 9 1 2 3 4...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 5

Group: 3

Verdict:

input
761
18 3 15
19 1 15
18 8 1
19 19 17
...

correct output
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 6

Group: 3

Verdict:

input
925
21 14 21
20 18 18
20 7 6
21 14 9
...

correct output
NO
NO
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
NO
NO
YES
20 19 18 17 16 15 14 1 2 3 4 5...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 7

Group: 3

Verdict:

input
529
22 3 3
22 17 5
22 6 15
22 22 20
...

correct output
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
YES
22 21 20 1 2 3 4 5 6 7 8 9 10 ...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 8

Group: 3

Verdict:

input
576
23 18 9
23 16 8
23 16 13
23 16 22
...

correct output
NO
NO
NO
NO
NO
...

user output
NO
NO
NO
NO
NO
...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 9

Group: 3

Verdict:

input
625
24 2 22
24 15 21
24 6 3
24 21 1
...

correct output
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 10

Group: 3

Verdict:

input
676
25 16 25
25 15 2
25 15 7
25 15 16
...

correct output
NO
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
NO
YES
25 24 23 22 21 20 19 18 17 16 ...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 11

Group: 3

Verdict:

input
729
26 2 18
26 14 18
26 5 18
26 19 13
...

correct output
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 12

Group: 3

Verdict:

input
784
27 26 7
27 14 0
27 14 5
27 14 14
...

correct output
NO
NO
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
NO
YES
27 26 25 24 23 22 21 20 19 18 ...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 13

Group: 3

Verdict:

input
841
28 26 16
28 13 19
28 5 8
28 26 4
...

correct output
NO
NO
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
NO
NO
YES
28 27 26 25 24 1 2 3 4 5 6 7 8...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 14

Group: 3

Verdict:

input
900
29 24 15
29 13 2
29 13 7
29 13 16
...

correct output
NO
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
NO
YES
29 28 27 26 25 24 23 22 21 20 ...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 15

Group: 3

Verdict:

input
961
30 24 26
30 12 24
30 4 29
30 24 14
...

correct output
NO
NO
NO
NO
YES
...

user output
NO
NO
NO
NO
YES
...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 16

Group: 3

Verdict:

input
1000
15 12 6
33 18 30
44 4 26
6 6 5
...

correct output
NO
NO
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
NO
NO

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 17

Group: 3

Verdict:

input
1000
45 32 30
4 0 3
46 23 10
71 19 46
...

correct output
NO
NO
YES
1 2 3 4 5 6 7 8 9 10 11 12 13 ...

user output
NO

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 18

Group: 3

Verdict:

input
1000
51 29 37
75 11 72
5 2 4
31 8 26
...

correct output
NO
NO
NO
NO
YES
...

user output
NO
NO
NO
NO

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 19

Group: 3

Verdict:

input
1000
50 20 37
99 45 58
86 79 73
85 70 54
...

correct output
NO
NO
NO
NO
NO
...

user output
NO
NO
NO
NO
NO
...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range

Test 20

Group: 3

Verdict:

input
1000
26 23 5
73 53 59
64 47 41
80 75 55
...

correct output
NO
NO
NO
NO
NO
...

user output
NO
NO
NO
NO
NO
...

Error:
Traceback (most recent call last):
  File "input/code.py", line 81, in <module>
    main()
  File "input/code.py", line 71, in main
    result = generate_game(n, a, b)
  File "input/code.py", line 61, in generate_game
    p1_moves[current_pos] = num
IndexError: list index out of range