fbpx

Problema #1580 – schimb – Rezolvari PBInfo

de Mihai-Alexandru

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
#include <bits/stdc++.h>
using namespace std;

ifstream cin("schimb.in");
ofstream cout("schimb.out");

int main()
{
    int n , k , p;
    cin >> n >> k >> p;
    char ch = (char)96+p;
    cin.get();
    for(int t = 0 ; t < n ; ++t)
    {
        char a[501];
        cin.getline(a , 501);
        int i = 0;
        int cnt=0;
        bool ok=false;
        int capat=0;
        while(a[i]!='\0')
        {
            if(a[i]!=' ')
                cnt++;
            if(cnt==k)
                ok=true;
            capat=i;
            i++;    
        }
        if(ok)
        {
            i=0;
            while(a[i]!='\0')
            {
                if(i+1==k)
                    cout << ch;
                else
                    cout << a[i];
                i++;    
            }
        }
        else
            while(capat>-1)
            {
                cout << a[capat];
                capat--;
            }
        cout << endl;
    }
    return 0;    
}
Comentarii

S-ar putea sa iti placa