CSES - Putka Open 2020 – 1/5 - Results
Submission details
Task:Lista
Sender:osku91
Submission time:2020-09-06 11:50:42 +0300
Language:CPython3
Status:READY
Result:59
Feedback
groupverdictscore
#1ACCEPTED21
#2ACCEPTED38
#30
Test results
testverdicttimegroup
#1ACCEPTED0.02 s1, 2, 3details
#2ACCEPTED0.02 s1, 2, 3details
#3ACCEPTED0.02 s1, 2, 3details
#4ACCEPTED0.02 s1, 2, 3details
#5ACCEPTED0.02 s1, 2, 3details
#6ACCEPTED0.02 s1, 2, 3details
#7ACCEPTED0.02 s1, 2, 3details
#8ACCEPTED0.02 s1, 2, 3details
#9ACCEPTED0.02 s1, 2, 3details
#10ACCEPTED0.02 s2, 3details
#11ACCEPTED0.03 s2, 3details
#12ACCEPTED0.04 s2, 3details
#13ACCEPTED0.03 s2, 3details
#14ACCEPTED0.03 s2, 3details
#15ACCEPTED0.04 s2, 3details
#16--3details
#17ACCEPTED0.40 s3details
#18--3details
#19--3details
#20--3details
#21ACCEPTED0.35 s3details

Code

import sys

sys.setrecursionlimit(1111)

n = int(input(''))
# n = 7

alkuluvut = {2: None}
for i in range(3, n * 2 + 5):
    is_alkuluku = True
    for j in alkuluvut:
        if i % j == 0:
            is_alkuluku = False

    if is_alkuluku:
        alkuluvut[i] = None
# print(alkuluvut)


# pairs = []
pairs = {}
pairs_by_first = {}
for i in range(1, n + 1):
    pairs_by_first[i] = {}
    for j in range(1, n + 1):
        if i + j in alkuluvut and i != j:
            pairs[(i, j)] = True
            pairs_by_first[i][(i, j)] = True
            # pairs.append((i, j))
# print(len(pairs))


def rec_find(pairs, remaining_depth, last_choice=None, solution=[], solution_hash={}):
    iterable = pairs.keys()
    if last_choice:
        iterable = pairs_by_first[last_choice[1]].keys()
    for choice in iterable:
        if last_choice and choice[0] != last_choice[1]:
            continue
        if choice[0] in solution_hash:
            continue
        if choice[1] in solution_hash:
            continue
        # if pairs[choice] == False:
        #     continue

        if remaining_depth == 2:
            if choice[0] + choice[1] in alkuluvut:
                return solution + list(choice)
        else:
            solution_hash[choice[0]] = None
            # pairs[choice] = False
            s = rec_find(
                pairs,
                remaining_depth - 1,
                last_choice=choice,
                solution=solution+[choice[0]],
                solution_hash=solution_hash
            )
            # pairs[choice] = True
            del solution_hash[choice[0]]
            if s:
                return s


solution = rec_find(pairs, n)
if solution:
    print(' '.join([str(i) for i in solution]))
else:
    print('No solution')

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
2

correct output
1 2 

user output
1 2

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
3

correct output
1 2 3 

user output
1 2 3

Test 3

Group: 1, 2, 3

Verdict: ACCEPTED

input
4

correct output
1 2 3 4 

user output
1 2 3 4

Test 4

Group: 1, 2, 3

Verdict: ACCEPTED

input
5

correct output
3 4 1 2 5 

user output
1 4 3 2 5

Test 5

Group: 1, 2, 3

Verdict: ACCEPTED

input
6

correct output
3 4 1 2 5 6 

user output
1 4 3 2 5 6

Test 6

Group: 1, 2, 3

Verdict: ACCEPTED

input
7

correct output
3 4 1 2 5 6 7 

user output
1 2 3 4 7 6 5

Test 7

Group: 1, 2, 3

Verdict: ACCEPTED

input
8

correct output
7 6 5 2 1 4 3 8 

user output
1 2 3 4 7 6 5 8

Test 8

Group: 1, 2, 3

Verdict: ACCEPTED

input
9

correct output
7 6 5 2 1 4 3 8 9 

user output
1 2 3 4 7 6 5 8 9

Test 9

Group: 1, 2, 3

Verdict: ACCEPTED

input
10

correct output
7 6 5 2 1 4 3 8 9 10 

user output
1 2 3 4 7 6 5 8 9 10

Test 10

Group: 2, 3

Verdict: ACCEPTED

input
19

correct output
17 14 3 8 15 16 13 6 5 2 1 4 9...

user output
1 2 3 4 7 6 5 8 9 10 13 16 15 ...

Test 11

Group: 2, 3

Verdict: ACCEPTED

input
56

correct output
55 54 53 50 51 52 49 48 13 28 ...

user output
1 2 3 4 7 6 5 8 9 10 13 16 15 ...

Test 12

Group: 2, 3

Verdict: ACCEPTED

input
70

correct output
67 4 1 2 9 32 35 38 65 66 61 4...

user output
1 2 3 4 7 6 5 8 9 10 13 16 15 ...

Test 13

Group: 2, 3

Verdict: ACCEPTED

input
76

correct output
73 66 61 42 59 54 53 50 51 52 ...

user output
1 2 3 4 7 6 5 8 9 10 13 16 15 ...

Test 14

Group: 2, 3

Verdict: ACCEPTED

input
90

correct output
87 86 11 18 29 44 45 16 55 58 ...

user output
1 2 3 4 7 6 5 8 9 10 13 16 15 ...

Test 15

Group: 2, 3

Verdict: ACCEPTED

input
100

correct output
97 96 95 78 25 82 81 56 71 68 ...

user output
1 2 3 4 7 6 5 8 9 10 13 16 15 ...

Test 16

Group: 3

Verdict:

input
154

correct output
151 6 5 92 137 134 149 84 143 ...

user output
(empty)

Test 17

Group: 3

Verdict: ACCEPTED

input
430

correct output
427 426 371 372 367 376 375 35...

user output
1 2 3 4 7 6 5 8 9 10 13 16 15 ...

Test 18

Group: 3

Verdict:

input
629

correct output
627 404 227 146 83 150 77 74 3...

user output
(empty)

Test 19

Group: 3

Verdict:

input
833

correct output
829 828 793 574 523 516 515 51...

user output
(empty)

Test 20

Group: 3

Verdict:

input
885

correct output
883 724 723 878 881 726 721 71...

user output
(empty)

Test 21

Group: 3

Verdict: ACCEPTED

input
1000

correct output
997 996 737 884 995 492 991 20...

user output
1 2 3 4 7 6 5 8 9 10 13 16 15 ...