VA ROG MULT!!
Problema ElimP #2803 pbinfo
Cerința
Se citește un număr p și un șir de caractere s, șirul conține cel mult 255 de litere mici ale alfabetului englez. Să se afișeze toate șirurile rezultate din eliminarea, pe rând, a fiecărei secvență de p caractere din s.
Date de intrare
Programul citește de la tastatură numărul p pe prima linie și șirul s pe cea de-a doua linie.
Date de ieșire
Programul va afișa pe ecran pe câte o linie, toate șirurile rezultate din eliminarea, pe rând, a fiecărei secvență de p caractere din s.
Restricții și precizări
1 ≤ p ≤ 255
eliminările se fac de la stânga la dreapta
Exemplu
Intrare
3
adina
Ieșire
na
aa
ad
Răspunsuri la întrebare
#include <cstring>
#include <iostream>
using namespace std;
char s[300];
int i, length, n;
int main()
{
cin >> n;
cin.get();
cin.getline(s, 300);
length = strlen(s);
for (int j = 0; j < length - n + 1; j++)
{
for (int i = 0; i < length; i++)
{
if (i < j || i >= j + n)
cout << s[i];
}
cout << '\n';
}
return 0;
}
Răspuns:
#include <bits/stdc++.h>
using namespace std;
char s[260],aux[260],t[260];
int p,n;
int main()
{
cin >> p >> s;
strcpy(aux,s);
n = strlen(s);
for(int i = 0; i <= n - p; i++){
strcpy(t,s + i + p);
strcpy(s + i,t);
cout << s << '\n';
strcpy(s,aux);
}
return 0;
}
Explicație: