Răspuns :
Răspuns:
#include<iostream>
using namespace std;
int c, p;
char st[30];
void Afis(int k)
{
for (int i = 1; i <= k; i++) cout << st[i];
cout << '\n';
}
int valid(int k) {
int p1 = 0, c1 = 0;
if (st[1] != 'C') return 0;
if (k == c+p && st[k] != 'P') return 0;
for (int i = 1; i <= k; i++) {
if (i > 2 && st[i] == 'C' && st[i - 1] == 'P' && st[i - 2] == 'C') return 0;
if (st[i] == 'P')p1++;
else c1++;
}
if (c1 > c || p1 > p) return 0;
return 1;
}
void back(int k) {
for (int i = 1; i <= 2; i++) {
if (i == 1) st[k] = 'C';
else st[k] = 'P';
if (!valid(k));
else {
if (k == c+p) Afis(k);
else back(k + 1);
}
}
}
int main() {
cin >> c >> p;
back(1);
return 0;
}
Explicație:
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Nu ezitați să ne contactați pentru întrebări sau asistență suplimentară. Vă așteptăm cu drag data viitoare și nu uitați să ne adăugați la favorite!