Time limit: 1s
Memory limit: 512MB
Input:
Output:
Se dă o listă cu cuvinte și operații pe această listă. Pot exista aceleași cuvinte de mai multe ori în listă.
Operațiile sunt următoarele:
1 s
- Adaugă cuvântul în listă.2 s
- Șterge o apariție a cuvântului din listă. Dacă acel cuvânt nu se află în listă, nu se întâmplă nimic.3 s
- Află numărul de triplete distincte formate din cuvinte din listă care au ca sufix cuvântul .
Cerință
Efectuați pe rând toate operațiile. Afișați răspunsurile la operațiile de tip 3.
Date de intrare
De pe prima linie se citește numărul natural , iar de pe a doua linie se citesc elementele listei descrise în enunț, separate prin exact un spațiu.
Pe următoarea linie se citește numărul natural , iar pe următoarele linii se citesc operațiile descrise în enunț.
Date de ieșire
Pe fiecare linie, se afișează răspunsurile la operațiile de tip 3.
Restricții și precizări
- Pentru 20 de puncte, .
- Pentru încă 25 de puncte, .
- Pentru încă 55 de puncte, . Pentru submisii în C++, este recomandată includerea acestei linii de cod la începutul funcției
main()
:cin.tie(0);ios::sync_with_stdio(0);
. - Distincția dintre triplete se face prin pozițiile cuvintelor în listă, nu prin conținutul cuvintelor.
- Fiecare cuvânt din datele de intrare va avea minim un caracter și maxim 20 de caractere. Caracterele permise sunt doar cele 26 litere mici de la
a
laz
.
Exemplu
stdin
5
acasa sa sa sa casa
3
2 sa
3 a
3 casa
stdout
4
0
Explicație
- După operația
2 sa
, s-a șters din listă o apariție a cuvântuluisa
. Acum, lista este formată din cuvinteleacasa
,sa
,sa
,casa
. - Operația
3 a
va afișa numărul4
, deoarece tripletele formate din cuvinte care au ca sufix cuvântula
sunt(acasa,sa,sa)
,(acasa,sa,casa)
,(acasa,sa,casa)
și(sa,sa,casa)
. Motivul pentru care(acasa,sa,casa)
a fost numărat de două ori este pentru că în primul triplet am considerat cuvântulsa
de pe poziția2
în listă, iar în al doilea triplet am considerat cuvântulsa
de pe poziția3
în listă. - Operația
3 casa
va afișa numărul0
, deoarece singurele cuvinte care au ca sufix cuvântulcasa
sunt cuvinteleacasa
șicasa
, acestea neputând forma un triplet.