Total num as en preguntes i total num bs en exclamacions X95873


Statement
 

pdf   zip

html

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 quin és el nombre total de a’s que apareixen en preguntes, i el nombre total de b’s que apareixen en exclamacions.

En l’exemple anterior, la resposta seria 4 i 7.

Entrada

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

Sortida

Heu d’escriure dos naturals en una línia i separats per un espai, el nombre total de a’s que apareixen en preguntes, i el nombre total de b’s que apareixen en exclamacions.

Observació

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. Per exemple, 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.

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
    Catalan
    Other languages
    English Spanish
    Official solutions
    C++
    User solutions
    C++