219
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