| Fișierul intrare/ieșire | sabin.in, sabin.out | Sursă | ad-hoc |
|---|---|---|---|
| Autor | Vlad Ionescu | Adăugată de |
|
| Timp de execuție pe test | 0.4 sec | Limită de memorie | 131072 KB |
| Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
Deathnote
Dat fiind că mallu’ nu era cea mai apropiată locație, Deathnote s-a hotărât să petreacă ceva timp la bibliotecă. Aici el a dat peste două rafturi cu cărți.
Primul raft conține N compartimente de cărți, fiecare compartiment având același număr de cărți, K. Cel de-al doilea raft conține un singur compartiment cu M cărți. Toate cărțile din ambele rafturi au titlurile formate din exact P caractere mici ale alfabetului englez.
Un prefix al unui șir de caractere se definește ca o subsecvență a șirului care începe de pe prima poziție a acestuia. Definim cel mai mare prefix comun (maxprefix) a două șiruri de caractere ca fiind lungimea celei mai lungi secvențe de caractere care este prefix și al primului șir și al celui de-al doilea.
Fiind date două compartimente de titluri de cărti A = [c1, c2, ..., cK] și B = [d1, d2, ..., dK], definim gradul de similitudine al acestora ca fiind min(maxprefix(c1, d1), maxprefix(c2, d2), ..., maxprefix(cK, dK)).
Deathnote ar dori să scoată K cărți din al doilea raft și să găsească un compartiment din primul raft pentru care gradul de similitudine să aibă o valoare dată.
Ca să intrați în grațiile lui Deathnote având la dispozitie cele două rafuri de cărți, trebuie să răspundeți la Q întrebări de forma: „Fiind date K cărți din al doilea raft, găsiți toate compartimentele din primul raft care au gradul de similitudine cu compartimentul dat exact X și afișați numărul lor”.
Date de intrare
Pe prima linie a fișierului sabin.in se află N, K, M, P și Q. Următoarele N linii descriu mulțimile de cărți din primul raft: cea de-a i-a linie va conține K șiruri de caractere de lungime P, despărțite printr-un spațiu, reprezentând cărțile din cel de-al i-lea compartiment. Următoarea linie descrie cele M cărți din al doilea raft.
Următoarele Q linii vor conține fiecare K + 1 numere. Primul număr reprezintă gradul de similitudine dorit X. Următoarele K numere reprezintă indicii cărților din al doilea raft care formează noul compartiment.
Date de ieșire
Fișierul deathnote.out va conține Q linii, câte una pentru fiecare întrebare din fișierul de intrare, reprezentând numărul de compartimente din primul raft care satisfac cerința dată.
Restricții
- 1 ≤ N ≤ 20.000
- 1 ≤ M ≤30.000
- 1 ≤ Q ≤20.000
- 1 ≤ K ≤ 15
- 1 ≤ P ≤ 30
- 0 ≤ X ≤ 30
Exemplu
| sabin.in | deathnote.out |
|---|---|
| 4 2 6 4 4 abcd trzs gefd fasf gefa fasx fxxx txxx affx trfs abxx trxx gefa fasf 1 1 2 1 3 4 3 5 6 1 6 2 |
1 0 2 1 |
Explicație
Numerele de pe prima linie a fișierului de intrare reprezintă N = 4, K = 2, M = 6, P = 4 și Q = 4.
Primul raft este format din N = 4 compartimente. Fiecare compartiment are K = 2 cărți, formate din P = 4 caractere: [abcd, trzs] [gefd, fasf] [gefa, fasx], [fxxx, txxx].
Avem M = 6 cărți pe al doilea raft: affx, trfs, abxx, trxx, gefa, fasf.
Primul query cere numărul de compartimente care să aibă coeficientul de similitudine cu [affx, trfs] egal cu 1. Doar compartimentul [abcd, trzs] satisface cerința.
Al doilea query cere numărul de compartimente care să aibă coeficientul de similitudine cu [abxx, trxx] egal cu 1. Nu există niciun astfel de compartiment. Compartimentul [abcd, trzs] are gradul de similitudine 2.
Al treilea query cere numărul de compartimente care să aibă coeficientul de similitudine cu [gefa, fasf] egal cu 3. Soluția este [gefd, fasf] și [gefa, fasx].
Al patrulea query cere numărul de compartimente care să aibă coeficientul de similitudine cu [fasf, trfs] egal cu 1. Soluția este [fxxx, txxx].

Poți vedea testele pentru această problemă accesând