Total de as en preguntas y total de bes en exclamaciones X95873


Statement
 

pdf   zip

html

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.

Entrada

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 !.

Salida

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.

Observación

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.

Public test cases
  • 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
    
  • Information
    Author
    PRO1
    Language
    Spanish
    Translator
    Original language
    Catalan
    Other languages
    Catalan English
    Official solutions
    C++
    User solutions
    C++