Task: | Ruudukko |
Sender: | Kirill_Akimov |
Submission time: | 2022-01-07 01:25:33 +0200 |
Language: | Python3 (PyPy3) |
Status: | READY |
Result: | 58 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 17 |
#2 | WRONG ANSWER | 0 |
#3 | ACCEPTED | 41 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.06 s | 1 | details |
#2 | ACCEPTED | 0.06 s | 1 | details |
#3 | ACCEPTED | 0.06 s | 1 | details |
#4 | ACCEPTED | 0.06 s | 1 | details |
#5 | ACCEPTED | 0.06 s | 1 | details |
#6 | ACCEPTED | 0.07 s | 2 | details |
#7 | ACCEPTED | 0.07 s | 2 | details |
#8 | ACCEPTED | 0.06 s | 2 | details |
#9 | WRONG ANSWER | 0.06 s | 2 | details |
#10 | ACCEPTED | 0.06 s | 2 | details |
#11 | ACCEPTED | 0.15 s | 3 | details |
#12 | ACCEPTED | 0.12 s | 3 | details |
#13 | ACCEPTED | 0.09 s | 3 | details |
#14 | ACCEPTED | 0.09 s | 3 | details |
#15 | ACCEPTED | 0.09 s | 3 | details |
Code
from string import ascii_uppercase char = {ascii_uppercase[i]:i for i in range(26)} n = int(input()) board = [[e for e in input()] for i in range(n)] answer = ['*'] * (2*n-1) answer[0] = board[0][0] answer[2*n-2] = board[n-1][n-1] current_queue = [[0,0]] new_queue = [] minimal = 26 def check(i, j): global n global answer global board if i == n-1: for k in range(i+j+1, 2*n-1): answer[k] = board[i][k-i] #answer[k] = r[i][j+k-i-j] return True elif j == n-1: for k in range(i+j+1, 2*n-1): answer[k] = board[k-j][j] #answer[k] = r[i+k-i-j][j] return True return False def fill_up(i, j, k): global n global char global board global minimal global current_queue global new_queue if k == 0 or current_queue[k-1][0] == current_queue[k][0] + 1: if j < n-1: if char[board[i][j+1]] < minimal: new_queue = [[i, j+1]] minimal = char[board[i][j+1]] elif char[board[i][j+1]] == minimal: new_queue += [[i, j+1]] if i < n-1: if char[board[i+1][j]] < minimal: new_queue = [[i+1, j]] minimal = char[board[i+1][j]] elif char[board[i+1][j]] == minimal: new_queue += [[i+1, j]] if n > 1: for i in range(1, 2*n-2): length = len(current_queue) if length == 1: if check(current_queue[0][0], current_queue[0][1]): break for j in range(length): fill_up(current_queue[j][0], current_queue[j][1], j) answer[i] = board[new_queue[0][0]][new_queue[0][1]] current_queue = new_queue new_queue = [] minimal = 26 print(''.join(answer))
Test details
Test 1
Group: 1
Verdict: ACCEPTED
input |
---|
5 AAAAA AAAAA AAAAA AAAAA ... |
correct output |
---|
AAAAAAAAB |
user output |
---|
AAAAAAAAB |
Test 2
Group: 1
Verdict: ACCEPTED
input |
---|
5 ABABA BABAB ABABA BABAB ... |
correct output |
---|
ABABABABA |
user output |
---|
ABABABABA |
Test 3
Group: 1
Verdict: ACCEPTED
input |
---|
5 WRYIU TWLKH UJMJC GRDJW ... |
correct output |
---|
WRWJMDJWK |
user output |
---|
WRWJMDJWK |
Test 4
Group: 1
Verdict: ACCEPTED
input |
---|
5 RUEAE ZYHHW KDBPD DXREW ... |
correct output |
---|
RUEAEWDWX |
user output |
---|
RUEAEWDWX |
Test 5
Group: 1
Verdict: ACCEPTED
input |
---|
5 SRGYR MYDOB GNOVM SZOZK ... |
correct output |
---|
SMGNOOLTU |
user output |
---|
SMGNOOLTU |
Test 6
Group: 2
Verdict: ACCEPTED
input |
---|
100 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... |
correct output |
---|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... |
user output |
---|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... Truncated |
Test 7
Group: 2
Verdict: ACCEPTED
input |
---|
100 ABABABABABABABABABABABABABABAB... |
correct output |
---|
ABABABABABABABABABABABABABABAB... |
user output |
---|
ABABABABABABABABABABABABABABAB... Truncated |
Test 8
Group: 2
Verdict: ACCEPTED
input |
---|
100 FWOVNYKNMMQCNHJGUYPNEDXGVVGONC... |
correct output |
---|
FWDBDECKBHKIACOVUCJGDJOHAYIBHO... |
user output |
---|
FWDBDECKBHKIACOVUCJGDJOHAYIBHO... Truncated |
Test 9
Group: 2
Verdict: WRONG ANSWER
input |
---|
100 ETGCJABWKMAAEOQXWFFYMDJBMNKMQK... |
correct output |
---|
EAARGLBRLHCDHHBPABHDAJBEEBHQBE... |
user output |
---|
EAARGLBRLHCDHHBPABHDAJBEEBHQBE... Truncated |
Test 10
Group: 2
Verdict: ACCEPTED
input |
---|
100 GNWMLJNHSBAADUFCSGIZMWHZTVDHNR... |
correct output |
---|
GEGOFRDKBNLLEUOPOEQCEFMTKANLNC... |
user output |
---|
GEGOFRDKBNLLEUOPOEQCEFMTKANLNC... Truncated |
Test 11
Group: 3
Verdict: ACCEPTED
input |
---|
500 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... |
correct output |
---|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... |
user output |
---|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... Truncated |
Test 12
Group: 3
Verdict: ACCEPTED
input |
---|
500 ABABABABABABABABABABABABABABAB... |
correct output |
---|
ABABABABABABABABABABABABABABAB... |
user output |
---|
ABABABABABABABABABABABABABABAB... Truncated |
Test 13
Group: 3
Verdict: ACCEPTED
input |
---|
500 HGADXTSFXYIEMDWMFIVQGHTACFUPYI... |
correct output |
---|
HGADEJOGAKPJCRAHTABRSDLAVGBFAG... |
user output |
---|
HGADEJOGAKPJCRAHTABRSDLAVGBFAG... Truncated |
Test 14
Group: 3
Verdict: ACCEPTED
input |
---|
500 SBLNMAZESQVGWAPZYHQJMQTNGMEZWS... |
correct output |
---|
SBLCAMDHILGIDRCIDUNMMAHFYCENOS... |
user output |
---|
SBLCAMDHILGIDRCIDUNMMAHFYCENOS... Truncated |
Test 15
Group: 3
Verdict: ACCEPTED
input |
---|
500 AOXYXRYFWPYWQDPWXQITLHQQUAYZAJ... |
correct output |
---|
AOJLDOAPBGEKSGCNKBUMKAJCCWCOOD... |
user output |
---|
AOJLDOAPBGEKSGCNKBUMKAJCCWCOOD... Truncated |