225
Pentru a exprima starea de spirit în comunicarea online sunt utilizate emoticonurile (cunoscute şi sub denumirea de smileys). În mod text, un smiley
este reprezentat ca o secvenţă de caractere. În problema noastră, un smiley este o secvenţă care îndeplineşte simultan următoarele condiţii:
- secvenţa începe cu un caracter din mulţimea
{′:′,′;′,′>′,′8′}
- urmează zero, unul sau mai multe caractere
′-′ (minus)
- se termină cu unul, două sau mai multe caractere identice din mulţimea
{′(′, ′)′, ′[′, ′]′, ′D′, ′P′, ′O′, ′X′, ′3′}
De exemplu, fiecare dintre următoarele secvenţe este un smiley:
Exemplu
smiley.in
Salut! :) Ce mai faci? :----))) Ai aflat noutatile? ;-P -(eu ieri am aflat) >))))))!!!!!!!!
smiley.out
4
Explicație
Cele 4
secvenţe smiley din text sunt:
:)
:----)))
;-P
>))))))
#include <bits/stdc++.h> using namespace std; ifstream cin("smiley.in"); ofstream cout("smiley.out"); int main() { int cnt = 0; char s[256] , a[] = "′:;>8" , b[] = "()[]DPOX3"; while(cin.getline(s , 256)) { for(int i = 0 ; s[i]; i++) { if(strchr(a , s[i])) { i++; while(s[i] == '-') i++; if(s[i] && strchr(b , s[i])) cnt++; else i--; } } } cout << cnt; }
Comentarii