Bulciņas un vēlmes

Bulciņas un vēlmes

viegls
Latvijas Informātikas olimpiādes logo
Uzdevums no Latvijas 38. (2024./2025. m. g.) informātikas olimpiādes (LIO) novada kārtas; jaunākajai (8.-10. klašu) grupai.

Stāsts

Slavena beķereja katru rītu izcep NN bulciņas (ar tām saprotot arī kūciņas un smalkmaizītes), un visas tās pirms beķerejas atvēršanas izvieto vitrīnā. 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 ir izceptas piecas biezpienmaizītes (B), divas kanēļa bulciņas (K), divas austiņas (A) un trīs rožmaizītes (R), un astoņu pircēju prioritātes ir A-B-K, A-B-K, R-R-R, K-B-B, A-K-B, A-K-K, K-R-A, X-A-R, tad pirmie divi pircēji nopirks pa austiņai, trešais - rožmaizīti, ceturtais un piektais - kanēļa bulciņu, bet sestais dosies prom, neko nenopircis, jo gan austiņas, gan kanēļa bulciņas ir jau izpirktas. Septītais un astotais pircējs nopirks pa rožmaizītei.

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

Ievaddati

Ievaddatu pirmajā rindā doti divi naturāli skaitļi, kas atdalīti ar tukšumzīmi - izcepto bulciņu skaits NN (N2105)(N \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 identificētos jāuzskata par atšķirīgiem simboliem.

Nākamajās PP ievaddatu rindās katrā dots trīs ar tukšumzīmēm atdalīti bulciņu veidu identifikatori - katram pircējam norādītas viņa trīs prioritātes.

Izvaddati

Izvaddatiem 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, identifikatoram. Ja pircējs dosies prom, neko nenopircis, tad attiecīgajā rindā jāizvada simbols "-" (mīnuszīme).

Piemēri

Ievaddati

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

Izvaddati

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

Ievaddati

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

Izvaddati

a1271 a1271 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.

Nav ierobežojumu.

4
2.

N1000N \leq 1000, P1000P \leq 1000.

20
3.

Bulciņas veida identifikatori ir skaitļi no 1 līdz 99.

11
4.

Bulciņas veida identifikatoru garums ir 1 simbols.

11
5.

Bulciņas veida identifikatoru garums ir 2 simboli.

24
6.

Bez papildu ierobežojumiem.

30
Apakšuzdevumu punktu summa = 100.

1. apakšuzdevuma ievaddati

8 5 l1o 2o25 l1o pn4d 2o25 2o25 M l1o M l1o pn4d M 2o25 pn4d s3 aqd l1o M 2o25 pn4d l1o M pn4d Kopēt kodu
7 6 2o25 DjUU DjUU l1o 2o25 2o25 2o25 DjUU l1o DjUU 2o25 2o25 l1o 2o25 DjUU l1o DjUU f DjUU l1o 58 x 2o25 2o25 l1o Kopēt kodu