ZagZigs

3
Latvijas Informātikas olimpiādes logo

Uzdevums no Latvijas 39. (2025./2026. m.g.) informātikas olimpiādes (LIO) novada kārtas; vecākajai (11.-12. klašu) grupai.

Stāsts

Alise un Bobs stundu laikā bieži sūta viens otram papīra zīmītes. Lai, ja gadījumā skolotāja viņus pieķer, viņa nevarētu tās izlasīt, Alise un Bobs izmanto "ZagZigu" šifru. Tas strādā šādi:

  1. Alise nosūta Bobam zīmīti ar tekstu - simbolu virkni, kas sastāv no lielajiem latīņu alfabēta burtiem bez atstarpēm.
  2. Bobs šo simbolu virkni pārraksta uz rūtiņu lapas ZagZigos.
  3. Bobs nolasa burtus, kas sarakstīti īpašajā rindā rr. Tie veido slepeno ziņu!

Par precīzu ZagZigu formu Alise un Bobs ir vienojušies iepriekš. Proti, ZagZigus raksturo naturālo skaitļu virkne a1,a2,,aKa_1, a_2, \dots, a_K, kur aia_i ir ii-tā ZagZiga augstums. Katrs ZagZigs sākas pirmajā rindā un secīgi aizpilda rūtiņas uz augšu līdz attiecīgā ZagZiga augstumam (ii-tajā ZagZigā tiek aizpildītas rūtiņas rindās 1,2,,ai1, 2, \dots, a_i), tad aizpilda divas blakus rūtiņas pa labi, un visbeidzot secīgi aizpilda visas rūtiņas uz leju līdz pat pirmajai rindai. Tad, ja šis nav pēdējais ZagZigs, tiek aizpildītas divas rūtiņas pa labi pirmajā rindā un uzsākts nākamais ZagZigs.

Ja Alises sūtītais teksts ir par garu, tad beigu daļa, kas paliek pāri pēc visu ZagZigu aizpildīšanas, netiek ņemta vērā. Savukārt, ja teksts ir par īsu, tad to atkārto vairākkārt, kamēr visi ZagZigi ir aizpildīti.

Piemēram, ja Alise nosūta Bobam tekstu "ASAKALAIMEPELMENISAUTO", un viņi ir vienojušies par trim ZagZigiem ar lielumiem a=[3,2,5]a=[3, 2, 5], tad Bobs burtus sarakstīs ZagZigos tā, kā parādīts 1. attēlā. Un, ja īpašā rinda ir r=2r=2, tad slepenais teksts būs "SLEPENS".

Alises sūtītais teksts pārrakstīts ZagZigos.
Alises sūtītais teksts pārrakstīts ZagZigos.

Uzrakstiet programmu, kas palīdz Bobam atšifrēt Alises slepeno ziņu, izmantojot "ZagZigu" šifru!

Ievaddati

Pirmajā rindā doti divi naturāli skaitļi - Alises sūtītā teksta garums NN (1N1061 \leq N \leq 10^6) un ZagZigu skaits KK (1K21051 \leq K \leq 2 \cdot 10^5). Otrajā rindā dota Alises sūtītā ziņa - simbolu virkne garumā NN, kas sastāv no lielajiem latīņu alfabēta burtiem (AZA-Z). Trešajā rindā doti KK naturāli skaitļi - ZagZigu augstumi a1,a2,,aKa_1, a_2, \dots, a_K (2ai1092 \leq a_i \leq 10^9). Starp katriem diviem blakus skaitļiem ir tukšumzīme. Ceturtajā rindā dots naturāls skaitlis rr - rindas, kura satur slepeno ziņojumu, numurs (1r1091 \leq r \leq 10^9).

Tiek garantēts, ka slepenais ziņojums sastāv no vismaz viena simbola.

Izvaddati

Izvaddatu vienīgajā rindā jābūt slepenajam ziņojumam.

Piemēri

Ievaddati

22 3 ASAKALAIMEPELMENISAUTO 3 2 5 2 Kopēt kodu

Izvaddati

SLEPENSKopēt kodu

Ievaddati

8 3 MXLAIYEZ 3 2 5 3 Kopēt kodu

Izvaddati

LAIMEKopēt kodu

Apakšuzdevumi un to vērtēšana

#Apakšuzdevuma aprakstsPunkti
1.

Uzdevuma tekstā dotie trīs testi

2
2.

N=1N = 1

12
3.

a1+a2++aK2105a_1 + a_2 + \dots + a_K \leq 2 \cdot 10^5

24
4.

a1=a2==aKa_1 = a_2 = \dots = a_K

21
5.

Bez papildu ierobežojumiem

41
Apakšuzdevumu punktu summa = 100.

1. apakšuzdevuma ievaddati

5 3 CVXOS 5 3 2 3 Kopēt kodu
8 3 BJZAIQUL 7 6 10 1 Kopēt kodu
5 7 MPHBU 3 2 4 3 2 3 3 4 Kopēt kodu