Task: | Lista |
Sender: | intoo |
Submission time: | 2022-01-22 16:09:28 +0200 |
Language: | Python3 (PyPy3) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | WRONG ANSWER | 0.04 s | 1, 2, 3 | details |
#2 | WRONG ANSWER | 0.14 s | 2, 3 | details |
#3 | WRONG ANSWER | 0.14 s | 3 | details |
#4 | ACCEPTED | 0.04 s | 1, 2, 3 | details |
#5 | ACCEPTED | 0.04 s | 1, 2, 3 | details |
#6 | ACCEPTED | 0.04 s | 1, 2, 3 | details |
#7 | ACCEPTED | 0.04 s | 1, 2, 3 | details |
#8 | ACCEPTED | 0.10 s | 3 | details |
#9 | WRONG ANSWER | 0.13 s | 3 | details |
#10 | ACCEPTED | 0.14 s | 3 | details |
Code
def fill_blanks(s, l):n = len(s)qs = 0for i in range(n):qs += s[i] == '?'if qs == 0: return sif l == "":if s[0] == '?': s[0] = '1'for i in range(1, n):if s[i] == '?': s[i] = '0'return sif len(l) > len(s): return ""if len(l) < len(s):if s[0] == '?': s[0] = '1'for i in range(1, n):if s[i] == '?': s[i] = '0'if int(''.join(s)) <= int(''.join(l)): return ""return snines = 0for c in l:nines += c == '9'if nines == n: return ""if nines == n-1 and l[0] != '9':if s[0] == '?':s[0] = str(int(l[0]) + 1)elif s[0] <= l[0]:return ""b = []for i in range(n):if s[i] == l[i] or s[i] == '?':b.append(0)else:b.append((int(s[i])-int(l[i]))/abs(int(s[i])-int(l[i])))qi = []for i in range(n):if s[i] == '?':qi.append(i)le = 0gr = 0while le < n and b[le] != -1: le += 1while gr < n and b[gr] != 1: gr += 1if gr < le:for i in qi:if i < gr: s[i] = l[i]else: s[i] = '0'elif le < gr:ti = -1for i in qi:if i < le and l[i] != '9': ti = iif ti == -1: return ""for i in qi:if i < ti: s[i] = l[i]elif i == ti: s[i] = str(int(l[i])+1)else: s[i] = '0'else:s = str(int(''.join(l))+1)if int(''.join(s)) <= int(''.join(l)): return ""return sn = int(input())v = []l = ""for i in range(n):s = list(input())s = fill_blanks(s, l)if s == "":print("IMPOSSIBLE")exit(0)v.append(''.join(s))l = slast = -1for s in v:if int(s) <= last:print("IMPOSSIBLE")exit(0)last = int(s)print(*v, sep="\n")
Test details
Test 1
Group: 1, 2, 3
Verdict: WRONG ANSWER
input |
---|
100 ?? ?? ?? ?? ... |
correct output |
---|
10 11 12 13 20 ... |
user output |
---|
10 11 12 13 20 ... Truncated |
Test 2
Group: 2, 3
Verdict: WRONG ANSWER
input |
---|
1000 8?? ??8? ???? ???? ... |
correct output |
---|
800 1080 1081 1082 1083 ... |
user output |
---|
800 1080 1081 1082 1083 ... Truncated |
Test 3
Group: 3
Verdict: WRONG ANSWER
input |
---|
1000 ?????? ?????9? ??98??? ?????5? ... |
correct output |
---|
100000 1000090 1098000 1098050 4100001 ... |
user output |
---|
100000 1000090 1098000 1098050 4100001 ... Truncated |
Test 4
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
100 ? ? ? ? ... |
correct output |
---|
1 2 3 4 5 ... |
user output |
---|
1 2 3 4 5 ... Truncated |
Test 5
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
2 ??? ?? |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 6
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
3 123 ??? 124 |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 7
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
5 1?? ??? 2?? ??? ... |
correct output |
---|
IMPOSSIBLE |
user output |
---|
IMPOSSIBLE |
Test 8
Group: 3
Verdict: ACCEPTED
input |
---|
1000 ????????? ????????? ????????? ????????? ... |
correct output |
---|
100000000 100000001 100000002 100000003 100000004 ... |
user output |
---|
100000000 100000001 100000002 100000003 100000004 ... Truncated |
Test 9
Group: 3
Verdict: WRONG ANSWER
input |
---|
900 ???000000 ???000000 ???000000 ???000000 ... |
correct output |
---|
100000000 101000000 102000000 103000000 104000000 ... |
user output |
---|
100000000 100000001 101000000 101000001 102000000 ... Truncated |
Test 10
Group: 3
Verdict: ACCEPTED
input |
---|
1000 ???1????? ???0????? ???1????? ???0????? ... |
correct output |
---|
100100000 101000000 101100000 102000000 102100000 ... |
user output |
---|
100100000 101000000 101100000 102000000 102100000 ... Truncated |