Fișierul intrare/ieșire sabin.in, sabin.out Sursă ad-hoc
Autor Vlad Ionescu Adăugată de avatar heracle Radu Muntean heracle
Timp de execuție pe test 0.4 sec Limită de memorie 131072 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

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

Trebuie să te autentifici pentru a trimite soluții. Click aici