ez

Time limit: 2.3s Memory limit: 1MB Input: ez.in Output: ez.out

!! 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 1 0001\ 000 de caractere.

Subtask 2 (30 de puncte)

  • Șirul are maxim 500 000500\ 000 de caractere.

Restricții și precizări

  • Codurile ASCII ale caracterelor din șir sunt cuprinse între 3232 și 126126, la care se mai adaugă și caracterul 1010. Mai jos este prezentat un tabel cu codurile ASCII ale fiecărui caracter.
  • Următoarea literă din alfabet după z este considerată litera a, iar următoarea literă din alfabet după Z este considerată litera A.
  • Cu toate că sunt 1MB de memorie disponibili, declararea oricărui fel de vector de 500 000500\ 000 de elemente nu duce la punctaj maxim!
  • Asigurați-vă că la ieșirea din funcția solve() toate stream-urile către fișierul ez.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 functia main() — aceasta va fi înlocuită de funcția solve(). Iată un exemplu de un program valid:
#include <fstream>
void solve() {
   std::ofstream fout("ez.in");
   fout << "qnq q3w nw3w";
   fout.close();
}

Log in or sign up to be able to send submissions!