Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | shiroeseq.in, shiroeseq.out | Sursă | AGM 2019, runda nationala |
Autor | Tamio-Vesa Nakajima | Adăugată de | |
Timp execuţie pe test | 3 sec | Limită de memorie | 256000 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Shiroeseq
Activitatea nouă a lui Shiroe implică încercarea de a detecta anumite fraze memorabile în unele fluxuri de date criptate.
Mai exact, lui i se dă un şir S ( ≤ ) şi un set de modele K Pi (| P1 | + ... + | PK | ≤ 50.000
şi | Pi
| ≤ | S |), toate conţinând numai litere mici. Pentru fiecare model P, spunem că un substring
S
0 din S conţine puternic P dacă şi numai dacă fiecare subreversă S
00 de lungime | P | din S
0
este o anagrama a lui P. In
pentru a afla cât de des apare fiecare model probabil în S, Shiroe trebuie să găsească, pentru fiecare Pi
, lungimea lui
S
0
eu
, cea mai lungă subcrasă a S care conţine puternic Pi
.
Reţineţi că un substring al unui şir S = hs1, ..., sni este un alt şir P = hp1, ..., pki astfel încât să existe
există o poziţie 0 ≤ t ≤ n - k astfel încât st + x = px pentru toate x ∈ {1, 2, 3, ..., k}.
Reţineţi că o anagramă a unui şir S este orice alt şir P care poate fi format din S prin permutarea lui S
de caractere.
Date de intrare
Fişierul de intrare shiroeseq.in contine pe prima linie T, numărul de teste.
Prima linie a unui test conţine S.
A doua linie a unui test conţine K.
Următoarele K linii ale fiecărui test conţin pattern-urile Pi, in ordine.
Date de ieşire
În fişierul de ieşire shiroeseq.out se afla răspunsurile pentru fiecare test în ordine.
Răspunsul pentru un test constă în K linii, fiecare dintre ele reprezentand lungimea substringului cerut pattern-ului respectiv.
Restricţii
- 1 ≤ T ≤ 10
- 1 ≤ |S| ≤ 50.000
Exemplu
shiroeseq.in | shiroeseq.out |
---|---|
2 ababab 2 ab abab abcaxa 3 a yyy ax | 6 6 1 2 3 |