# PBinfo #3140 – a1z26 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

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

## Cod sursă C++

```cpp
/// 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;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3140)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3140/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3140/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
