| Task: | Leimasin |
| Sender: | Metabolix |
| Submission time: | 2025-09-26 20:00:21 +0300 |
| Language: | Python3 (CPython3) |
| Status: | READY |
| Result: | 76 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 33 |
| #2 | ACCEPTED | 43 |
| #3 | TIME LIMIT EXCEEDED | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.02 s | 1, 2, 3 | details |
| #2 | ACCEPTED | 0.02 s | 1, 2, 3 | details |
| #3 | ACCEPTED | 0.02 s | 1, 2, 3 | details |
| #4 | ACCEPTED | 0.02 s | 1, 2, 3 | details |
| #5 | ACCEPTED | 0.03 s | 2, 3 | details |
| #6 | ACCEPTED | 0.04 s | 2, 3 | details |
| #7 | ACCEPTED | 0.06 s | 2, 3 | details |
| #8 | ACCEPTED | 0.05 s | 2, 3 | details |
| #9 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #10 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #11 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #12 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #13 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #14 | TIME LIMIT EXCEEDED | -- | 3 | details |
Code
import heapq
# Lukee rivin syötettä ja palauttaa sen sisältämät luvut listana.
def read_numbers():
return list(map(int, input().strip().split()))
def read_string():
return input().strip()
def main():
# lue luvut n m k
nmk = read_numbers()
tuloksen_koko = nmk[0]
leiman_koko = nmk[1]
leimasin = read_string().encode()
leimaukset = read_numbers()
# Priority queue: (kohta, prioriteetti)
leimaukset_tulossa = []
for prioriteetti, kohta in enumerate(leimaukset):
heapq.heappush(leimaukset_tulossa, (kohta, prioriteetti))
leimaukset_voimassa = []
taulu = bytearray(b'.' * tuloksen_koko)
for tulos_i in range(1, tuloksen_koko + 1):
# Siirrä leimaukset, jotka alkavat nyt, voimassaoleviin
while leimaukset_tulossa and leimaukset_tulossa[0][0] == tulos_i:
kohta, prioriteetti = heapq.heappop(leimaukset_tulossa)
heapq.heappush(leimaukset_voimassa, (-prioriteetti, kohta))
# Poista vanhentuneet leimaukset
while leimaukset_voimassa and leimaukset_voimassa[0][1] + leiman_koko <= tulos_i:
heapq.heappop(leimaukset_voimassa)
# Jos voimassaoleva leimaus, käytä sitä
if leimaukset_voimassa:
taulu[tulos_i - 1] = leimasin[tulos_i - leimaukset_voimassa[0][1]]
print(taulu.decode())
if __name__ == "__main__":
main()
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1000 1 100 a 585 600 750 170 794 845 341 39... |
| correct output |
|---|
| ............a....aa.............. |
| user output |
|---|
| ............a....aa.............. Truncated |
Test 2
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1000 4 100 zhrb 795 569 744 662 315 869 913 21... |
| correct output |
|---|
| .........................zhrb.... |
| user output |
|---|
| .........................zhrb.... Truncated |
Test 3
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1000 100 100 wkmtgzytnfwptwukbartgunjyrkyml... |
| correct output |
|---|
| wkmtgzywkmtgzytnfwptwukbartgun... |
| user output |
|---|
| wkmtgzywkmtgzytnfwptwukbartgun... Truncated |
Test 4
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 100 njplbyvkaytbcyzbylzntnmpfapvfg... |
| correct output |
|---|
| njplbyvkaytbcyzbylzntnmpfapvfg... |
| user output |
|---|
| njplbyvkaytbcyzbylzntnmpfapvfg... Truncated |
Test 5
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 1 1000 a 61541 4948 46214 29629 8779 76... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. Truncated |
Test 6
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 10 1000 ntsconpqnv 17118 69319 2115 8873 892 9994... |
| correct output |
|---|
| .....................ntsconpqn... |
| user output |
|---|
| .....................ntsconpqn... Truncated |
Test 7
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 10000 1000 wcyeepjmmvavmoncfxclqrsebjzwbf... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. Truncated |
Test 8
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 1000 chdcxwwznawllrxcxlckeziomcsjhc... |
| correct output |
|---|
| chdcxwwznawllrxcxlckeziomcsjhc... |
| user output |
|---|
| chdcxwwznawllrxcxlckeziomcsjhc... Truncated |
Test 9
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000000 1 500000 a 406018 635983 429225 943593 90... |
| correct output |
|---|
| .a...aa.....a.aaaa.a.aaa..aa.a... |
| user output |
|---|
| (empty) |
Test 10
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000000 10 500000 frvhrhlrxi 85148 459715 677814 98302 4081... |
| correct output |
|---|
| frvhfrvhrhlrxihrhlrxifrvhrfrvf... |
| user output |
|---|
| (empty) |
Test 11
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000000 1000 500000 hklmkntjqgilackgurwlerwvvfjwwr... |
| correct output |
|---|
| .hklhklmkntjqgilackgurwlerwvvf... |
| user output |
|---|
| (empty) |
Test 12
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000000 10000 500000 yxajftmelgwiofcugtrvcltdemhyuu... |
| correct output |
|---|
| yxajftyxayxajftmelgwiofcugtrvc... |
| user output |
|---|
| (empty) |
Test 13
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000000 100000 500000 yyzteckvutdnprlklyxgenyqpznght... |
| correct output |
|---|
| .yyyyzteckvutdnpryyzteckvutdnp... |
| user output |
|---|
| (empty) |
Test 14
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000000 1000000 500000 hhgvveiosloznsihxtccfjbizayyhl... |
| correct output |
|---|
| hhgvveiosloznsihxtccfjbizayyhl... |
| user output |
|---|
| (empty) |
