Beķerejas vitrīna

Beķerejas vitrīna

vidēji grūts
Latvijas Informātikas olimpiādes logo
Uzdevums no Latvijas 38. (2024./2025. m. g.) informātikas olimpiādes (LIO) novada kārtas; vecākajai (11.-12. klašu) grupai.

Stāsts

Slavena beķereja katru rītu noteiktā secībā izcep NN bulciņas (ar tām saprotot arī kūciņas un smalkmaizītes), un tās pirms beķerejas atvēršanas to izcepšanas secībā izvieto vitrīnā. Diemžēl, vitrīnā ir vieta tikai VV bulciņām, tāpēc pēc kārtas nākamā bulciņa tajā tiek novietota tikai tad, kad kāda no vitrīnā izliktajām bulciņām tiek nopirkta un tās aizņemtā vieta atbrīvojas.

Tad beķereja tiek atvērta un pēc kārtas tiek apkalpoti PP pircēji. Katrs pircējs vēlas nopirkt vienu bulciņu un uzskatīsim, ka katram pircējam ir tieši trīs visiecienītākie bulciņu veidi jeb prioritātes. Ir iespējams, ka kādam pircējam vairākas prioritātes sakrīt, kā arī var būt, ka starp prioritātēm ir tādi bulciņu veidi, kurus slavenā beķereja nemaz nepiedāvā.

Katrs pircējs rīkojas pēc šāda algoritma:

  • JA ir pieejama 1. prioritātes bulciņa, TAD pircējs to nopērk un dodas prom
  • CITĀDI JA ir pieejama 2. prioritātes bulciņa, TAD pircējs to nopērk un dodas prom
  • CITĀDI JA ir pieejama 3. prioritātes bulciņa, TAD pircējs to nopērk un dodas prom
  • CITĀDI pircējs dodas prom, neko nenopircis.

Piemēram, ja kādu rītu tiek ceptas biezpienmaizītes (B), kanēļa bulciņas (K), austiņas (A) un rožmaizītes (R), turklāt 12 bulciņas ir izceptas secībā A-B-R-K-A-B-B-B-R-R-B-K, vitrīnā ir vieta trim bulciņām un astoņu pircēju prioritātes ir K-R-A, A-B-K, A-B-K, R-R-R, K-B-B, A-K-B, A-K-K, X-A-R, tad pirmais pircējs nopirks rožmaizīti, nākamie divi pircēji nopirks pa austiņai, ceturtais dosies prom, neko nenopircis, piektais nopirks kanēļa bulciņu, sestais - biezpienmaizīti, bet septītais un astotais dosies prom, neko nenopircis, jo rožmaizītes tobrīd vitrīnā nav.

Uzrakstiet datorprogrammu, kas nosaka, kāda veida bulciņu nopirks katrs no pircējiem!

Ievaddati

evaddatu pirmajā rindā doti trīs naturāli skaitļi, kas atdalīti ar tukšumzīmēm - izcepto bulciņu skaits NN (N2105)(N \leq 2 \cdot 10^5), vietu skaits vitrīnā VV (V2105)(V \leq 2 \cdot 10^5) un pircēju skaits PP (P2105)(P \leq 2 \cdot 10^5).

Nākamajās NN ievaddatu rindās katrā dots viena bulciņu veida identifikators - angļu alfabēta lielo un mazo burtu un ciparu virkne, kuras garums ir vismaz viens, bet ne vairāk kā deviņi simboli. Lielie un mazie burti identifikatoros jāuzskata par atšķirīgiem simboliem. Katram ii (1iN)(1 \leq i \leq N) un jj (1j3)(1 \leq j \leq3) jj-tais identifikators pēc kārtas ievaddatu N+1+iN+1+i-ajā rindā norāda ii-tais pircēja jj-to prioritāti.

Nākamajās PP ievaddatu rindās katrā dots trīs, ar tukšumzīmēm atdalīti, bulciņu veidu identifikatori. Katram ii (1iP)(1 \leq i \leq P) un j(1j3)j(1 \leq j \leq3) jj-tais identifikators pēc kārtas ievaddatu N+1+iN+1+i-ajā rindā norāda ii-tais pircēja jj-to prioritāti.

Izvaddati

zvaddatiem jāsatur PP rindas. Katram ii (1iP)(1 \leq i \leq P) ii-tajā izvaddatu rindā jābūt tās bulciņas, kuru nopirks pēc kārtas iitais pircējs. Ja pircējs dosies prom, neko nenopircis, tad attiecīgajā rindā jāizvada simbols "-" (mīnuszīme).

Piemēri

Ievaddati

12 3 8 A B R K A B B B R R B K K R A A B K A B K R R R K B B A K B A K K X A R Kopēt kodu

Izvaddati

R A A - K B - - Kopēt kodu

Ievaddati

5 2 6 A1271 a1271 b33 a1271 b33 a1271 b33 A1271 a1271 b33 A1271 a1271 B33 A1271 a1271 B33 A1271 a1271 B33 A1271 a1271 b33 A1271 Kopēt kodu

Izvaddati

a1271 b33 a1271 A1271 - b33 Kopēt kodu

Izpildes resursu ierobežojumi

CPU izpildes laiks uz testu: 0.6 sekundes.
RAM atmiņas apjoms uz testu: 256 megabaiti.

Apakšuzdevumi un to vērtēšana

#Apraksts un ierobežojumiPunkti
1.

Uzdevuma tekstā dotie divi testi

4
2.

N1000,P1000N \leq 1000, P \leq 1000

10
3.

N=VN = V

15
4.

Bulciņas veida identifikatoru garums ir 2 simboli

16
5.

Bez papildu ierobežojumiem

20
Apakšuzdevumu punktu summa = 65.

1. apakšuzdevuma ievaddati

8 5 8 n4d4 2o25 2o25 A7E l1o n4d4 A7E 2o25 OWDv n4d4 l1o n4d4 l1o l1o 2o25 l1o A7E 2o25 n4d4 l1o A7E n4d4 V1 2o25 A7E WY6 l1o n4d4 n4d4 2o25 l1o l1o Kopēt kodu
7 4 8 2o25 2o25 jU jU l1o 2o25 2o25 l1o jU 2o25 2o25 jz 2o25 jU 2o25 3eGf jU l1o 58 x 2o25 2o25 l1o 2cEo LEko 2o25 j1n5 v 2o25 jU l1o Kopēt kodu