Gimigpt

Time limit: 1.4s Memory limit: 512MB Input: gimigpt.in Output: gimigpt.out

În urma rezultatelor bune obținute, Gimi a devenit foarte popular printre colegii lui. Însă, nu în modul pe care și-l dorea. Acum, majoritatea colegilor au început să-i pună diverse întrebări teoretice.

Gimi a primit o listă de NN întrebări de la colegii săi, și îsi propune să răspundă în ordine la ele. A ii-a întrebare qiq_i constă dintr-un șir de caractere alcătuit numai din litere mici ale alfabetului englez. Ce a observat însa este că el poate primi aceeași întrebare, formulată diferit – așa că, dacă întrebarea qiq_i se aseamănă cu cel puțin o întrebare qj (q_j \ ( cu 1j<i)1 \leq j < i) la care deja a răspuns, atunci el nu va mai răspunde la întrebarea qiq_i.

Gimi și-a definit următoarele criterii de asemănare între întrebarea qjq_j și întrebarea qiq_i:

  • Egalitate (E)(E): Dacă întrebarea qiq_i este egală cu întrebarea qjq_j , atunci qiq_i și qjq_j se aseamănă prin criteriul EE.
  • Inserare (I)(I); Dacă prin inserarea unui singur caracter în qiq_i, aceasta devine egală cu qjq_j , atunci qiq_i și qjq_j se aseamănă prin criteriul II.
  • Ștergere (S)(S): Dacă prin ștergerea unui singur caracter din qiq_i, aceasta devine egală cu qjq_j , atunci qiq_i și qjq_j se aseamănă prin criteriul SS.
  • Modificare (M)(M): Dacă prin modificarea unui singur caracter din qiq_i, aceasta devine egală cu qjq_j , atunci qiq_i și qjq_j se aseamănă prin criteriul MM.

Notăm cu TT mulțimea de criterii de asemănare pe care el le utilizează. De exemplu, dacă T=EIT = EI, el va folosi numai criteriile EE și II pentru a determina dacă întrebările seamănă sau nu. Dacă T=EISMT = EISM, atunci el va folosi toate cele 44 criterii.

Gimi pornește cu prima întrebare din listă și va răspunde la ea. După aceea, începând de la a doua întrebare până la ultima, procedează astfel:

  • Dacă întrebarea qiq_i seamănă cu cel puțin o întrebare qjq_j pe baza a cel puțin unuia dintre criteriile din TT, atunci NU va răspunde la întrebarea qiq_i.
  • Altfel, va răspunde la întrebarea qiq_i.

Fiind un set foarte mare de întrebări, Gimi și-ar dori să determine: pentru o mulțime de criterii TT, la care întrebări va răspunde (și la care nu).

Cerință

Scrieţi un program care, cunoscând NN , numărul de întrebări, TT, criteriile de asemănare folosite, respectiv cele NN întrebări q1,q2,,qNq_1, q_2, …, q_N , afișează pentru fiecare dintre aceste întrebări dacă se va răspunde la ea sau nu.

Date de intrare

Fişierul de intrare gimigpt.in conține pe prima linie un număr natural NN , reprezentând numărul de întrebări, și un șir de caractere TT, care conține criteriile de asemănare, separate printr-un spațiu.
Următoarele NN linii conțin, în ordine, cele NN întrebări, câte o întrebare pe o linie.

Date de ieșire

Fişierul de ieşire gimigpt.out va conţine NN linii. Linia ii va conține valoarea 11 dacă se va răspunde la cea de a ii-a întrebare din fișierul de intrare, respectiv valoarea 00 în caz contrar.

Restricții și precizări

  • T{ET \in \{E, EIEI, ESES , EMEM, EISEIS, EIMEIM, ESMESM, EISM}EISM \}
  • 1N80 0001 \leq N \leq 80 \ 000
  • 2LEN(qi)262 \leq LEN(q_i) \leq 26, pentru oricare 1iN1 \leq i \leq N , unde LEN reprezintă lungimea șirului.
  • Testele sunt grupate. În cadrul fiecărui subtask, sunt precizate și grupele de teste asociate
# Punctaj Restricții
1 5+6+6+6 (gr. 1, 2, 3, 4) N=800,T{E,EI,ES,EM}N = 800,T \in \{ E, EI, ES, EM \}
2 3+3+3+3 (gr. 5, 6, 7, 8) N=10 000,T{E,EI,ES,EM}N = 10 \ 000,T \in \{ E, EI, ES, EM \}
3 5 (gr. 9) N=800,T=EISMN = 800,T = EISM
4 7 (gr. 10) N=4 000,T=EISMN = 4 \ 000,T = EISM
5 12 (gr. 11) N=10 000,T=EISMN = 10 \ 000,T = EISM
6 12 (gr. 12) N=30 000,T=EISMN = 30 \ 000,T = EISM
7 2+2+4 (gr. 13, 14, 15) N{800,10 000,80 000}N \in \{ 800, 10 \ 000, 80 \ 000 \}, T=EISMT= EISM, 2len(qi)102 \leq len(q_i) \leq 10
8 2+2+4 (gr. 16, 17, 18) N{800,10 000,80 000}N \in \{ 800, 10 \ 000, 80 \ 000 \}, T=EISMT = EISM, qiq_i conține numai literele aa și bb
9 13 (gr. 19, 20) N=80 000N = 80 \ 000, T=EISMT = EISM

Exemplul 1

gimigpt.in

5 EISM
abc
abb
abbx
abc
bbb

gimigpt.out

1
0
1
0
1

Explicație

Se va răspunde la prima întrebare abcabc A doua întrebare abbabb se aseamănă cu întrebarea abcabc pe baza criteriului MM (se modifica ultima literă din bb în cc), deci nu se va răspunde.
Se va răspunde la a treia întrebare abbxabbx. Se observă că, dacă s-ar fi răspuns la întrebarea abbabb, atunci nu s-ar mai fi răspuns la întrebarea curentă.
A patra întrebare abcabc se aseamănă cu întrebarea abcabc pe baza criteriului EE (șirurile sunt egale), deci nu se va răspunde la ea.
Se va răspunde la întrebarea bbbbbb.

Exemplul 2

gimigpt.in

4 EI
abc
abb
ac
abbx

gimigpt.out

1
1
0
1

Explicație

Se va răspunde la prima întrebare abcabc.
Se va răspunde la a doua întrebare abbabb.
Ea nu se aseamănă cu întrebarea abcabc pe baza criteriilor EE și II.
Nu se va răspunde la a treia întrebare acac. Ea se aseamănă cu întrebarea abcabc pe baza criteriului II (prin inserarea literei bb).
Se va răspunde la întrebarea abbxabbx. Ea se aseamănă cu întrebarea abxabx pe baza criteriului SS (prin ștergerea literei xx), care nu face parte din TT. Criteriul II presupune strict inserarea unei litere în șirul curent (abbx)(abbx) și nu inserarea unei litere într-o întrebare la care s-a răspuns deja.

Log in or sign up to be able to send submissions!