Cerința
Pentru un cuvânt format din litere mici ale alfabetului englez s
și un număr natural x
mai mic sau egal cu lungimea cuvântului, definim următoarea operație:
- dacă
x
este par, las
se vor adăuga primele salex
litere, în ordinea din șir; - dacă
x
este impar, las
se vor adăuga primele salex
litere, în ordinea inversă din șir.
Se dă un cuvânt s
și un șir de n
numere naturale x[1]
, x[2]
, …, x[n]
. Se aplică succesiv operația definită mai sus între șirul s
și numerele din șir, în ordinea acestora.
Afișați șirul s
după aplicarea acestor operații.
Date de intrare
Programul citește de la tastatură cuvântul s
, numărul n
și cele n
elemente ale șirului.
Date de ieșire
Programul va afișa pe ecran cuvântul rezultat.
Restricții și precizări
- lungimea inițială a cuvântului este de cel mult
1000
de caractere 1 ≤ n ≤ 1000
- fiecare element al șirului dat va fi mai mic sau egal cu minimul dintre
1000
și lungimea curentă a șiruluis
Exemplu
Intrare
alina 3 4 3 2
Ieșire
alinaalinilaal
#include <bits/stdc++.h> using namespace std; char s[1000001]; int main() { cin >> s; int n; cin >> n; int x; for(int i = 1 ; i <= n ; ++i) { cin >> x; if(x % 2 == 0) { strncat(s , s , x); } else { int l = 0; char d[1001]; for(int j = x - 1 ; j >= 0 ; --j) d[l]=s[j] , l++; strncat(s , d , x); } } cout << s; return 0; }