Las entradas de este ejercicio son varias frases no-vacías formadas
por a’s y
b’s y acabadas en un signo de
puntuación, que puede ser . o
? o
!. Cada frase vendrá en una
línea diferente para hacer más clara la presentación. Por ejemplo, esta
sería una posible entrada del ejercicio:
bbb?
aabba.
b.
bbbba?
abbaa?
aaabbb!
babbabb.
bbabb!
aa!
Las frases acabadas en .
se denominan sentencias.
Las frases acabadas en ?
se denominan preguntas.
Las frases acabadas en !
se denominan exclamaciones.
Escribe un programa que lea la entrada y diga cuál es el número total
de a’s que aparecen en
preguntas, y el número de b’s
que aparecen en exclamaciones.
En el ejemplo anterior, la respuesta sería 4 y 7.
La entrada contiene un número arbitrario de líneas. Cada línea tiene
uno o más caracteres a o
b finalizados por un signo de
puntuación . o
? o
!.
Debéis escribir dos naturales en una línea y separados por un
espacio, el número total de
a’s que aparecen en
preguntas, y el número total de
b’s que aparecen en
exclamaciones.
No se puede utilizar ningún método de almacenamiento masivo de datos,
ni siquiera string. Lee y trata la secuencia
caracter a caracter. En particular, usar
getline o similar está prohibido, y el motivo
es obvio: en condiciones normales, las frases no vendrían separadas por
saltos de línea. De hecho, que la entrada separe las frases con saltos
de línea es solo por motivos de claridad en la presentación del
ejercicio. Por ejemplo, si se van leyendo caracteres com
cin c,
es irrelevante si hay saltos de línea o no, porque la lectura con
cin ignora los saltos de línea.
Evaluación sobre 10 puntos:
Solución lenta: 5 puntos.
Solución rápida: 10 puntos.
Entendemos por solución rápida una que es correcta, de coste lineal y capaz de superar los juegos de prueba públicos y privados. Entendemos como solución lenta una que no es rápida, pero es correcta y capaz de superar los juegos de pruebas públicos.
Input
bbb? aabba. b. bbbba? abbaa? aaabbb! babbabb. bbabb! aa!
Output
4 7
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
35 51