!! NU AVEȚI VOIE SĂ DESCHIDEȚI FIȘIERUL ez.out
!!
Ez a primit de ziua sa un calculator, însă acesta a venit defect din fabrică: atunci când Ez scrie la tastatură un cuvânt, calculatorul înlocuiește vocalele aeiouAEIOU
respectiv cu literele qwrtyQWRTY
. În cazul în care cuvintele conțin deja literele qwrtyQWRTY
, calculatorul le înlocuiește respectiv cu cifrele 1234512345
pentru a le diferenția; de asemenea, după aceste modificări, calculatorul înlocuiește toate consoanele în afară de qwrtyQWRTY
din cuvintele cu lungime pară cu următoarea literă din alfabet. Cuvintele se separă doar prin caracterele spațiu sau newline (\n
).
Cerință
Șirul de caractere introdus de Ez se găsește în fișierul ez.in
. Implementați funcția solve()
care va schimba conținutul acestui fișier cu șirul modificat de calculator.
Exemplu
ez.in
ana are mere
ez.in
qnq q3w nw3w
Subtask 1 (70 de puncte)
- Șirul are maxim de caractere.
Subtask 2 (30 de puncte)
- Șirul are maxim de caractere.
Restricții și precizări
- Codurile ASCII ale caracterelor din șir sunt cuprinse între și , la care se mai adaugă și caracterul . Mai jos este prezentat un tabel cu codurile ASCII ale fiecărui caracter.
- Următoarea literă din alfabet după
z
este considerată literaa
, iar următoarea literă din alfabet dupăZ
este considerată literaA
. - Cu toate că sunt
1MB
de memorie disponibili, declararea oricărui fel de vector de de elemente nu duce la punctaj maxim! - Asigurați-vă că la ieșirea din funcția
solve()
toate stream-urile către fișierulez.in
sunt închise! - Atenție! Cerința este să implementați funcția
solve()
. Codul pe care îl veți trimite nu va conține functiamain()
— aceasta va fi înlocuită de funcțiasolve()
. Iată un exemplu de un program valid:
#include <fstream>
void solve() {
std::ofstream fout("ez.in");
fout << "qnq q3w nw3w";
fout.close();
}