273
Enunțul acestei probleme este identic cu cel al problemei #Generare2 . Vă recomandăm să o rezolvați folosind o structură de date de tip coadă.
Cerința
Se dau patru numere naturale n a x y
. Să se afișeze elementele mulțimii M
, cu următoarele proprietăți:
- toate elementele lui
M
sunt numere naturale mai mici sau egale cun
; a
se află înM
;- dacă
b
se află înM
, atuncib+x
șib+y
se află înM
.
Date de intrare
Programul citește de la tastatură numerele n a x y
.
Date de ieșire
Programul va afișa pe ecran elementele mulțimii M
, în ordine crescătoare, separate prin câte un spațiu.
Restricții și precizări
1 ≤ n ≤ 10000
1 ≤ x , y ≤ 10000
0 ≤ a ≤ 10000
Exemplu
Intrare
25 3 4 11
Ieșire
3 7 11 14 15 18 19 22 23 25
#include <bits/stdc++.h> using namespace std; int n, x, y; bool apartine[1 + 10000] ; void genereaza(int b) { if (b <= n && !apartine[b]) { apartine[b] = true; genereaza(b + x); genereaza(b + y); } } int main() { int a; cin >> n >> a >> x >> y; genereaza(a); for (int i = 0; i <= n; i++) if (apartine[i]) cout << i <<" "; return 0; }
Comentarii