Rezolvare completă PbInfo #3140 a1z26

A1Z26

Cifrul A1Z26 este cel mai ușor cifru de substituție: fiecare literă este înlocuită cu numărul ei de ordine în alfabet. Astfel, A devine 1, B devine 2, ș.a.m.d.

Cerința

Se dă un număr p:
1. Dacă p = 1, se dă un șir de caractere s format din litere mari. Să se afișeze numărul de ordine al caracterelor separate printr-un spațiu.
2. Dacă p = 2, se dă un număr n și n numere cuprinse între 1 și 26. Să se afișeze șirul corespunzător numerelor.

Date de intrare

Fișierul de intrare a1z26.in conține pe prima linie numărul p.
Dacă p = 1, pe a doua linie din fișier se află șirul de caractere s.
Dacă p = 2, pe a doua linie din fișier se află numarul natural n iar pe următoarea linie se află n numere.

Date de ieșire

Dacă p = 1, fișierul de ieșire a1z26.out va conține pe prima linie numerele de ordine ale caracterelor din șirul s, separate prin câte un spațiu.

Daca p = 2, fișierul de ieșire a1z26.out va conține pe prima linie șirul format din numerele de ordine date, afișate cu litere mari.

Restricții și precizări

  • 1 ≤ p ≤ 2
  • 1 ≤ lungimea șirului s ≤ 1.000.000
  • 1 ≤ n ≤ 1.000.000
  • 1 ≤ numerele de pe a doua linie ≤ 26

Exemplul 1:

a1z26.in

1
ANAAREMERE

a1z26.out

1 14 1 1 18 5 13 5 18 5

Exemplul 2:

a1z26.in

2
10
1 14 1 1 18 5 13 5 18 5

a1z26.out

ANAAREMERE

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema a1z26:

/// Sursa Vasiluta Mihai-Alexandru
#include <fstream>
using namespace std;
ifstream f("a1z26.in");
ofstream g("a1z26.out");
char c;
int p, n, i, k;

int main()
{
    f >> p;
    if(p == 1)
    {
        while(f >> c)
            g << c - 'A' + 1 << " ";
    } else
    {
        f >> n;
        for(i = 1; i <= n; i++)
        {
            f >> k;
            g << char(k + 'A' - 1);
        }
    }
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #3140 a1z26

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3140 a1z26 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!