CSES - Aalto Competitive Programming 2024 - wk2 - Mon - Results
Submission details
Task:Building Teams
Sender:clovis
Submission time:2024-09-09 17:04:12 +0300
Language:CPython3
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.02 sdetails
#2ACCEPTED0.02 sdetails
#3ACCEPTED0.02 sdetails
#4ACCEPTED0.02 sdetails
#50.02 sdetails
#60.58 sdetails
#70.58 sdetails
#80.57 sdetails
#90.57 sdetails
#100.58 sdetails
#110.02 sdetails
#120.02 sdetails

Code

inp1 = input().split()
numPupils = int(inp1[0])
numFriendships = int(inp1[1])

friendshipList = []

for i in range(numFriendships):
  inp2 = input().split()
  friendshipList.append([int(inp2[0]), int(inp2[1])])

def whetherValid(group1, group2):
  for friendship in friendshipList:
    if friendship[0] in group1 and friendship[1] in group1:
      return False
    if friendship[0] in group2 and friendship[1] in group2:
      return False
    
  return True

whetherPossible = [False]
possibleGroup = []

def get_combinations(index, group1, group2):
  # base case
  # if index reaches total number of pupils, then no more pupils to sort. Check if both group1 and group2 are valid. If yes then print out
  if possibleGroup != []:
    return
  if index == numPupils + 1:
    if whetherValid(group1, group2):
      # print("group1:", group1)
      # print("group2:", group2)
      possibleGroup.append(group1)
      possibleGroup.append(group2)

      whetherPossible[0] = True
    return
    
  # print(f"index: {index}, group1: {group1}, group2: {group2}")

  # reduction step
  # 2 choices
  # 1. don't add the pupil to group1, add to group2 and increment index
  # 2. add the pupil to group1, don't add to group2, increment index
  get_combinations(index + 1, group1, group2 + [index])
  get_combinations(index + 1, group1 + [index], group2)


get_combinations(1, [], [])
# print(whetherPossible[0])
# print(possibleGroup)
if whetherPossible:
  # print("YAY")
  group1 = possibleGroup[0]
  group2 = possibleGroup[1]
  solution = ""

  for i in range(1, numPupils + 1):
    if i in group1:
      solution += "1 "
    else:
      solution += "2 "

  print(solution[:-1])

else:
  print("IMPOSSIBLE")

Test details

Test 1

Verdict: ACCEPTED

input
10 20
3 4
8 10
3 7
1 8
...

correct output
1 1 1 2 2 1 2 2 2 1 

user output
2 2 2 1 1 2 1 1 1 2

Test 2

Verdict: ACCEPTED

input
10 20
1 3
8 10
2 4
6 8
...

correct output
1 1 2 2 1 1 1 2 1 1 

user output
2 2 1 1 2 2 2 1 2 2

Test 3

Verdict: ACCEPTED

input
10 20
7 10
3 10
9 10
2 10
...

correct output
1 2 2 1 1 1 2 1 2 1 

user output
2 1 1 2 2 2 1 2 1 2

Test 4

Verdict: ACCEPTED

input
10 20
2 4
2 10
7 10
4 6
...

correct output
1 2 1 1 2 2 2 1 2 1 

user output
2 1 2 2 1 1 1 2 1 2

Test 5

Verdict:

input
10 20
3 5
8 10
9 10
1 8
...

correct output
IMPOSSIBLE

user output
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 53, in <module>
    group1 = possibleGroup[0]
IndexError: list index out of range

Test 6

Verdict:

input
100000 200000
47355 96505
90709 92058
735 80715
91802 94265
...

correct output
1 2 2 1 2 1 1 1 2 2 1 2 1 1 1 ...

user output
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 48, in <module>
    get_combinations(1, [], [])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  [Previous line repeated 995 more times]
  File "/box/input/code.py", line 26, in get_combinations
    if possibleGroup != []:
RecursionError: maximum recursion depth exceeded in comparison

Test 7

Verdict:

input
100000 200000
59991 95794
95150 96051
78453 94730
90411 95523
...

correct output
1 1 1 2 2 1 1 2 1 2 1 2 2 2 1 ...

user output
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 48, in <module>
    get_combinations(1, [], [])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  [Previous line repeated 995 more times]
  File "/box/input/code.py", line 26, in get_combinations
    if possibleGroup != []:
RecursionError: maximum recursion depth exceeded in comparison

Test 8

Verdict:

input
100000 200000
89827 96402
65137 86792
80965 94708
19479 48078
...

correct output
1 2 1 1 2 1 2 2 2 1 2 1 1 2 1 ...

user output
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 48, in <module>
    get_combinations(1, [], [])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  [Previous line repeated 995 more times]
  File "/box/input/code.py", line 26, in get_combinations
    if possibleGroup != []:
RecursionError: maximum recursion depth exceeded in comparison

Test 9

Verdict:

input
100000 200000
72952 83723
66197 70052
2949 52160
55753 95651
...

correct output
1 1 2 2 2 1 1 2 2 2 2 2 1 2 1 ...

user output
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 48, in <module>
    get_combinations(1, [], [])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  [Previous line repeated 995 more times]
  File "/box/input/code.py", line 26, in get_combinations
    if possibleGroup != []:
RecursionError: maximum recursion depth exceeded in comparison

Test 10

Verdict:

input
100000 200000
38942 96755
70049 82663
7746 72732
87819 99029
...

correct output
IMPOSSIBLE

user output
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 48, in <module>
    get_combinations(1, [], [])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  File "/box/input/code.py", line 44, in get_combinations
    get_combinations(index + 1, group1, group2 + [index])
  [Previous line repeated 995 more times]
  File "/box/input/code.py", line 26, in get_combinations
    if possibleGroup != []:
RecursionError: maximum recursion depth exceeded in comparison

Test 11

Verdict:

input
5 4
1 2
3 4
4 5
5 3

correct output
IMPOSSIBLE

user output
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 53, in <module>
    group1 = possibleGroup[0]
IndexError: list index out of range

Test 12

Verdict:

input
4 5
1 2
1 4
2 3
2 4
...

correct output
IMPOSSIBLE

user output
(empty)

Error:
Traceback (most recent call last):
  File "/box/input/code.py", line 53, in <module>
    group1 = possibleGroup[0]
IndexError: list index out of range