Les entrades d’aquest exercici són vàries frases no-buides formades
per a’s i
b’s i acabades en un signe de
puntuació, que pot ser . o
? o
!. Cada frase vindrà en una
línia diferent per a fer més clara la presentació. Per exemple, aquesta
seria una possible entrada de l’exercici:
bbb?
aabba.
b.
bbbba?
abbaa?
aaabbb!
babbabb.
bbabb!
aa!
Les frases acabades en .
s’anomenen sentències.
Les frases acabades en ?
s’anomenen preguntes.
Les frases acabades en !
s’anomenen exclamacions.
Implementeu un programa que llegeixi aquestes entrades i digui
quantes frases hi ha que apareguin inmediàtament després d’una pregunta
i que tinguin estrictament més
a’s que
b’s.
En l’exemple anterior, la resposta seria 2. Fixeu-vos que després de
la pregunta bbb? apareix la
frase aabba., que té
estrictament més a’s que
b’s. A més a més, després de
la pregunta bbbba? apareix la
frase abbaa?, que té
estrictament més a’s que
b’s. Per tant, sumem 2. També
tenim que després de la pregunta
abbaa? apareix la frase
aaabbb!, però aquesta no té
estrictament més a’s que
b’s.
L’entrada conté un nombre arbitrari de línies. Cada línia té un o més
caràcters a o
b finalitzats per un signe de
puntuació . o
? o
!.
Per a cada línia d’entrada, heu d’escriure un natural, el nombre
total de frases que venen inmediatament a continuació de preguntes, i
que tenen estrictament més
a’s que
b’s.
No es pot fer servir cap mètode d’emmagatzemament massiu de dades, ni
tan sols string. Llegiu i tracteu l’entrada
caràcter a caràcter. En particular, usar
getline o similar queda prohibit, i el motiu
és obvi: en condicions normals, les frases no vindrien separades per
salts de línia. De fet, que l’entrada separi les frases amb salts de
línia és només per motius de claretat en la presentació de l’exercici.
Si aneu llegint caràcters amb
cin c,
és irrellevant si hi ha salts de línia o no, perquè la lectura amb
cin ignora els salts de línia.
Avaluació sobre 10 punts:
Solució lenta: 5 punts.
solució ràpida: 10 punts.
Entenem com a solució ràpida una que és correcta, de cost lineal i capaç de superar els jocs de proves públics i privats. Entenem com a solució lenta una que no és ràpida, però és correcta i capaç de superar els jocs de proves públics.
Input
bbb? aabba. b. bbbba? abbaa? aaabbb! babbabb. bbabb! aa!
Output
2
Input
abbbbaabbababb? a? ba. aaabbbbaaa! bababbbbabaab. abaabaaab. a. babbbabababa! abaa! abbabaaaa? aaabbaaa! babaaab! bbbababbbbbb! bbabbababb! babbbaaabababa? bbbbaaababaa? ababbbbbaa! abb. ab! bbaabbab! bbbaa? aaabb! abababa! abbaa. aab. a! aabbaaaababb? a! a? abaaaaa.
Output
5