| Task: | Arpakuutiot |
| Sender: | Ugi |
| Submission time: | 2020-10-08 23:08:12 +0300 |
| Language: | Python3 (PyPy3) |
| Status: | READY |
| Result: | 35 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 35 |
| #2 | RUNTIME ERROR | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.05 s | 1, 2 | details |
| #2 | ACCEPTED | 0.05 s | 1, 2 | details |
| #3 | ACCEPTED | 0.05 s | 1, 2 | details |
| #4 | ACCEPTED | 0.05 s | 1, 2 | details |
| #5 | ACCEPTED | 0.05 s | 1, 2 | details |
| #6 | ACCEPTED | 0.05 s | 1, 2 | details |
| #7 | ACCEPTED | 0.05 s | 1, 2 | details |
| #8 | ACCEPTED | 0.05 s | 1, 2 | details |
| #9 | ACCEPTED | 0.05 s | 1, 2 | details |
| #10 | ACCEPTED | 0.05 s | 1, 2 | details |
| #11 | RUNTIME ERROR | 0.08 s | 2 | details |
| #12 | RUNTIME ERROR | 0.08 s | 2 | details |
| #13 | RUNTIME ERROR | 0.08 s | 2 | details |
| #14 | ACCEPTED | 0.06 s | 2 | details |
| #15 | RUNTIME ERROR | 0.08 s | 2 | details |
| #16 | ACCEPTED | 0.06 s | 2 | details |
| #17 | ACCEPTED | 0.06 s | 2 | details |
| #18 | RUNTIME ERROR | 0.08 s | 2 | details |
| #19 | ACCEPTED | 0.06 s | 2 | details |
| #20 | ACCEPTED | 0.06 s | 2 | details |
| #21 | RUNTIME ERROR | 0.09 s | 2 | details |
| #22 | RUNTIME ERROR | 0.09 s | 2 | details |
| #23 | RUNTIME ERROR | 0.08 s | 2 | details |
| #24 | ACCEPTED | 0.07 s | 2 | details |
| #25 | RUNTIME ERROR | 0.09 s | 2 | details |
| #26 | ACCEPTED | 0.07 s | 2 | details |
| #27 | RUNTIME ERROR | 0.09 s | 2 | details |
| #28 | RUNTIME ERROR | 0.08 s | 2 | details |
| #29 | ACCEPTED | 0.07 s | 2 | details |
| #30 | RUNTIME ERROR | 0.09 s | 2 | details |
| #31 | ACCEPTED | 0.05 s | 1, 2 | details |
Code
def pret(solution):
return [int("".join([x.replace(".","") for x in solution if x != "....."]))]
def fit(dice):
for x in dice:
if len([z for z in x if z != "."]) == 3:
li1 = "".join([z for z in x if z != "."])
elif len([z for z in x if z != "."]) == 4:
li2 = "".join([z for z in x if z != "."][::-1])
for y in [list(map(lambda l: l[t], dice)) for t in range(5)]:
if len([z for z in y if z != "."]) == 3:
li1 = "".join([z for z in y if z != "."])
if len([z for z in y if z != "."]) == 4:
li2 = "".join([z for z in y if z != "."])
ind = li2.index(li1[1])
li3 = [li2[(ind+1)%4],li2[(ind+2)%4],li2[(ind+3)%4]]
return [li1+"..","."+li3[0]+"...","."+li3[1]+"...","."+li3[2]+"...","....."]
def fix(dice,rc,i):
if rc == "r":
for a,e in enumerate(dice[i-1]):
if e != ".":
ind = a
break
u = dice[i+1].replace(".","")
dice[i+1] = "....."
dice[i+1] = dice[i+1][:ind]+u+dice[i+1][ind:]
return dice
if rc == "c":
for a,e in enumerate(list(map(lambda l: l[i-1], dice))):
if e != ".":
ind = a
u = e
break
dice[ind] = dice[ind][:i-1]+"."+dice[ind][i:]
for z,y in enumerate(list(map(lambda l: l[i+1], dice))):
if y != ".":
ind2 = z
break
dice[ind2] = dice[ind2][:i-1]+u+dice[ind2][i:]
return dice
def force(dice):
#for x in dice:
# print(x)
for i,e in enumerate([dice[y] for y in range(5)]):
if len([x for x in e if x != "."]) == 4:
return fix(dice,"r",i)
for i,e in enumerate([list(map(lambda l: l[t], dice)) for t in range(5)]):
if len([x for x in e if x != "."]) == 4:
return fix(dice,"c",i)
for i,row in enumerate(dice):
if len([z for z in row if z != "."]) == 3:
forth = (dice[(i-2)%5]+dice[(i+2)%5]).replace(".","")
if len(forth) == 0:
for q,spot in enumerate(row):
if spot == ".":
if len([z for z in list(map(lambda l: l[q], dice)) if z != "."]) == 1:
forth = [z for z in list(map(lambda l: l[q], dice)) if z != "."][0]
dice = [x.replace(forth,".") for x in dice]
break
else:
dice[i-2],dice[(i+2)%5] = ".....","....."
if row[:2] == "..":
dice[i] = "."+forth+row[2:]
elif row[0] == ".":
dice[i] = forth+row[1:]
elif row[-2:] == "..":
dice[i] = row[:-2]+forth+"."
dice = fix(dice,"r",i)
return dice
for i,column in enumerate([list(map(lambda l: l[t], dice)) for t in range(5)]):
if len([z for z in column if z != "."]) == 3:
forth = "".join(list(map(lambda l: l[(i+2)%5], dice))+list(map(lambda l: l[(i-2)%5], dice))).replace(".","")
if len(forth) == 0:
for q,spot in enumerate(column):
if spot == ".":
if len([x for x in dice[q] if x != "."]) == 1:
forth = [x for x in dice[q] if x != "."][0]
dice = [x.replace(forth,".") for x in dice]
break
else:
for t in range(5):
dice[t] = dice[t][:q-2]+"."+dice[t][q-1:]
dice[t] = dice[t][:q+2]+"."+dice[t][q+3:]
if list(map(lambda l: l[i], dice))[:2] == ['.', '.']:
dice[1] = dice[1][:i]+forth+dice[1][i+1:]
elif list(map(lambda l: l[i], dice))[0] == '.':
dice[0] = dice[0][:i]+forth+dice[0][i+1:]
elif list(map(lambda l: l[i], dice))[-2:] == ['.', '.']:
dice[3] = dice[3][:i]+forth+dice[3][i+1:]
dice = fix(dice,"c",i)
return dice
return force(only2(dice))
def only2(dice):
f=lambda a: (abs(a)+a)/2
for i,row in enumerate(dice):
if len([z for z in row if z != "."]) != 1:
continue
for z,spot in enumerate(row):
if spot == ".":
continue
dice[i] == "....."
if dice[i+1][(z+1)%4] != "." or dice[i-1][(z+1)%4] != ".":
dice[i] = (z+1)*"."+spot+(3-z)*"."
return dice
if dice[i+1][z-1] != "." or dice[i-1][z-1] != ".":
dice[i] = (z-1)*"."+spot+(5-z)*"."
return dice
for i,column in enumerate([list(map(lambda l: l[t], dice)) for t in range(5)]):
if len([z for z in column if z != "."]) != 1:
continue
for z,spot in enumerate(column):
if spot == ".":
continue
f=lambda a: (abs(a)+a)/2
dice[z] = dice[z][:i]+"."+dice[z][i+1:]
if dice[z-1][(i+1)%4] != "." or dice[z-1][i-1] != ".":
dice[z-1] = dice[z-1][:int(f(i))]+spot+dice[z-1][i+1:]
return dice
if dice[z+1][(i+1)%4] != "." or dice[z+1][i-1] != ".":
dice[z+1] = dice[z+1][:int(f(i))]+spot+dice[z+1][i+1:]
return dice
def turnover(dice):
return list(turn(turn(dice)))
def turn3(dice):
lis = []
pi = list(shift(dice))
lis += pret(pi)
pi = list(shift(pi))
lis += pret(pi)
pi = list(shift(pi))
lis += pret(pi)
return lis,pi
def check(dice):
lit = []
lit += pret(dice)
lis,pi = turn3(dice)
lit += lis
pi = turnover(pi)
lit += pret(pi)
lis,pi = turn3(pi)
lit += lis
pi = list(turn(pi))
lit += pret(pi)
lis,pi = turn3(pi)
lit += lis
pi = turnover(pi)
lit += pret(pi)
lis,pi = turn3(pi)
lit += lis
pi = list(turn(pi))
lit += pret(pi)
lis,pi = turn3(pi)
lit += lis
pi = turnover(pi)
lit += pret(pi)
lis,pi = turn3(pi)
lit += lis
return sorted(lit)
def same(dice,dice2):
if sorted(check(dice)) == sorted(check(dice2)):
return True
return False
def shift(dice):
rem = dice[0][1]
dice[0] = dice[0].replace(dice[0][1],dice[1][1])
dice[1] = dice[1].replace(dice[1][1],dice[2][1])
dice[2] = dice[2].replace(dice[2][1],dice[3][1])
dice[3] = dice[3].replace(dice[3][1],rem)
return dice
def turn(dice):
remem = dice[0][2]
dice[0] = dice[2][1]+dice[0][0]+dice[0][1]+".."
dice[2] = "."+remem+"..."
return dice
num = int(input())
li = []
for x in range(num):
li2 = []
for x in range(5):
li2.append(input())
space = input()
li.append(li2)
lis = []
lis2 = []
for i,dice in enumerate(li):
t = fit(force(dice))
lis.append(check(t))
for i,x in enumerate(lis):
io = []
for u,y in enumerate(lis):
if i == u:
continue
if any([z in x for z in y]):
io.append(u+1)
if len(io) == 0:
print("-")
else:
print(" ".join(map(str,io)))
Test details
Test 1
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 3 165.. .4... .3... .2... ... |
| correct output |
|---|
| 3 - 1 |
| user output |
|---|
| 3 - 1 |
Test 2
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 5 264.. .5... .3... .1... ... |
| correct output |
|---|
| 3 4 5 1 2 5 2 4 |
| user output |
|---|
| 3 4 5 1 2 5 2 4 |
Test 3
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 5 152.. .4... .3... .6... ... |
| correct output |
|---|
| 3 5 4 1 5 2 1 3 |
| user output |
|---|
| 3 5 4 1 5 2 1 3 |
Test 4
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 5 142.. .6... .3... .5... ... |
| correct output |
|---|
| 4 5 3 2 1 5 1 4 |
| user output |
|---|
| 4 5 3 2 1 5 1 4 |
Test 5
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 5 123.. .4... .6... .5... ... |
| correct output |
|---|
| 3 4 5 1 2 5 2 4 |
| user output |
|---|
| 3 4 5 1 2 5 2 4 |
Test 6
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 5 213.. .6... .4... .5... ... |
| correct output |
|---|
| 4 5 3 2 1 5 1 4 |
| user output |
|---|
| 4 5 3 2 1 5 1 4 |
Test 7
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 5 314.. .5... .2... .6... ... |
| correct output |
|---|
| 3 4 5 1 2 5 2 4 |
| user output |
|---|
| 3 4 5 1 2 5 2 4 |
Test 8
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 5 163.. .2... .5... .4... ... |
| correct output |
|---|
| 4 5 3 2 1 5 1 4 |
| user output |
|---|
| 4 5 3 2 1 5 1 4 |
Test 9
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 5 264.. .1... .3... .5... ... |
| correct output |
|---|
| 2 3 1 3 1 2 5 4 |
| user output |
|---|
| 2 3 1 3 1 2 5 4 |
Test 10
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 5 214.. .3... .5... .6... ... |
| correct output |
|---|
| 5 3 4 2 4 2 3 1 |
| user output |
|---|
| 5 3 4 2 4 2 3 1 |
Test 11
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 10 .41.. .5... .2... 36... ... |
| correct output |
|---|
| 9 4 6 8 7 10 2 6 8 - ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 12
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 10 5.... 1436. .2... ..... ... |
| correct output |
|---|
| 5 8 6 10 4 7 9 3 7 9 1 8 ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 13
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 10 2.... 41... .63.. .5... ... |
| correct output |
|---|
| 4 9 10 5 6 7 8 - 1 9 10 2 6 7 8 ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 14
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 10 1.... 634.. ..52. ..... ... |
| correct output |
|---|
| 2 3 4 5 6 9 10 1 3 4 5 6 9 10 1 2 4 5 6 9 10 1 2 3 5 6 9 10 1 2 3 4 6 9 10 ... |
| user output |
|---|
| 2 3 4 5 6 9 10 1 3 4 5 6 9 10 1 2 4 5 6 9 10 1 2 3 5 6 9 10 1 2 3 4 6 9 10 ... Truncated |
Test 15
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 10 .2... 4516. 3.... ..... ... |
| correct output |
|---|
| 5 7 9 10 8 4 6 3 6 1 7 9 10 ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 16
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 10 .56.. .2... .4... 31... ... |
| correct output |
|---|
| 4 9 3 5 10 2 5 10 1 9 2 3 10 ... |
| user output |
|---|
| 4 9 3 5 10 2 5 10 1 9 2 3 10 ... |
Test 17
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 10 ..62. .31.. 45... ..... ... |
| correct output |
|---|
| 2 3 4 8 1 3 4 8 1 2 4 8 1 2 3 8 6 7 9 10 ... |
| user output |
|---|
| 2 3 4 8 1 3 4 8 1 2 4 8 1 2 3 8 6 7 9 10 ... |
Test 18
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 10 532.. .4... .1... .6... ... |
| correct output |
|---|
| 3 8 9 5 6 1 8 9 7 10 2 6 ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 19
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 10 .64.. .1... .3... 52... ... |
| correct output |
|---|
| 2 5 6 7 8 9 1 5 6 7 8 9 4 10 3 10 1 2 6 7 8 9 ... |
| user output |
|---|
| 2 5 6 7 8 9 1 5 6 7 8 9 4 10 3 10 1 2 6 7 8 9 ... Truncated |
Test 20
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 10 .4... 326.. .1... .5... ... |
| correct output |
|---|
| 4 7 8 6 9 10 5 1 7 8 3 ... |
| user output |
|---|
| 4 7 8 6 9 10 5 1 7 8 3 ... |
Test 21
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 20 .6... .4... 31... .25.. ... |
| correct output |
|---|
| 3 7 11 16 6 1 7 11 16 5 19 4 19 ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 22
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 20 3.... 5614. ..2.. ..... ... |
| correct output |
|---|
| 7 10 11 17 20 12 4 9 13 15 18 3 9 13 15 18 8 14 16 ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 23
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 20 42... .316. .5... ..... ... |
| correct output |
|---|
| 5 12 13 15 18 16 20 6 8 14 9 19 1 12 13 15 18 ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 24
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 20 ..5.. .623. 41... ..... ... |
| correct output |
|---|
| 2 6 11 12 13 1 6 11 12 13 5 16 18 7 14 3 16 18 ... |
| user output |
|---|
| 2 6 11 12 13 1 6 11 12 13 5 16 18 7 14 3 16 18 ... Truncated |
Test 25
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 20 .46.. 53... .1... .2... ... |
| correct output |
|---|
| 2 3 5 7 15 17 19 1 3 5 7 15 17 19 1 2 5 7 15 17 19 8 10 11 14 1 2 3 7 15 17 19 ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 26
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 20 .61.. .4... 35... .2... ... |
| correct output |
|---|
| 8 10 20 3 17 18 19 2 17 18 19 14 15 6 7 9 13 ... |
| user output |
|---|
| 8 10 20 3 17 18 19 2 17 18 19 14 15 6 7 9 13 ... Truncated |
Test 27
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 20 ..2.. 1463. .5... ..... ... |
| correct output |
|---|
| 2 3 5 6 9 20 1 3 5 6 9 20 1 2 5 6 9 20 11 19 1 2 3 6 9 20 ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 28
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 20 ...4. 5132. 6.... ..... ... |
| correct output |
|---|
| 2 8 10 12 13 19 1 8 10 12 13 19 4 5 15 16 17 3 5 15 16 17 3 4 15 16 17 ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 29
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 20 .2... .31.. 45... 6.... ... |
| correct output |
|---|
| 5 8 9 14 17 3 10 16 2 10 16 13 15 19 1 8 9 14 17 ... |
| user output |
|---|
| 5 8 9 14 17 3 10 16 2 10 16 13 15 19 1 8 9 14 17 ... Truncated |
Test 30
Group: 2
Verdict: RUNTIME ERROR
| input |
|---|
| 20 3.... 452.. .1... .6... ... |
| correct output |
|---|
| 3 7 8 9 14 15 16 19 4 12 13 17 1 7 8 9 14 15 16 19 2 12 13 17 11 20 ... |
| user output |
|---|
| (empty) |
Error:
Traceback (most recent call last):
File "input/code.py", line 189, in <module>
t = f...Test 31
Group: 1, 2
Verdict: ACCEPTED
| input |
|---|
| 2 546.. .3... .2... .1... ... |
| correct output |
|---|
| - - |
| user output |
|---|
| - - |
