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, la s se vor adăuga primele sale x litere, în ordinea din șir; dacă x este impar, la s se vor adăuga primele sale x 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 șirului s Exemplu Intrare alina 3 4 3 2 Ieșire alinaalinilaal
Răspunsuri la întrebare
Răspuns de
5
#include <iostream>
#include <cstring>
using namespace std;
char s[1001002];
int n, num, j, i, k;
int main()
{
cin >> s >> n;
j=strlen(s);
for (i=1; i<=n; ++i)
{
cin >> num;
if (num%2==0)
{
for (k=0; k<num; ++k)
s[j++]=s[k];
}
else
{
for (k=num-1; k>=0; --k)
s[j++]=s[k];
}
}
s[j]='\0';
cout << s;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă