# PBinfo #1580 – schimb – Rezolvare C++

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

## Enunț

Cerința
Se dau trei numere naturale n, k și p și n șiruri formate din litere mici ale alfabetului englez. Înlocuiți a k-a literă din fiecare șir cu a p-a literă din alfabet. Dacă șirul are mai puțin de k litere se va scrie oglinditul lui.

Date de intrare
Pe prima linie a fișierului schimb.in se află trei numere naturale n, k și p. Pe următoarele n linii se află n șiruri.

Date de ieșire
În fișierul schimb.out se vor scrie noile șiruri, fiecare pe un rând nou.

Restricții și precizări

1 ≤ n, k ≤ 10000
1 ≤ p ≤ 26
șirurile au cel mult 500 de caractere

Exemplul 1
schimb.in

2 4 7
abcde
efg
schimb.out

abcge
gfe
Exemplul 2
schimb.in

3 2 3
wqysd
s
sj
schimb.out

wcysd
s
sc

## Cod sursă C++

```cpp
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("schimb.in");
ofstream g("schimb.out");
char s[2001];
int n, k, p, i, j;
int main()
{
    f>>n>>k>>p;
    for (i=1; i<=n; i++) {
        f.get();
        f.get(s,2001);
        if (strlen(s)<k) {
            for (j=strlen(s)-1; j>=0; j--) g<<s[j];
            g<<'\n';
        }
        else {
            s[k-1]=96+p;
            g<<s<<'\n';
        }
    }
    return 0;
}
```

## Resurse

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