368
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ă
xeste par, lasse vor adăuga primele salexlitere, în ordinea din șir; - dacă
xeste impar, lasse vor adăuga primele salexlitere, î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
1000de 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;
}
Comentarii