fbpx

Problema #867 – Generare2_cu_Coada – Rezolvari PBInfo

de Mihai-Alexandru

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 cu n;
  • a se află în M;
  • dacă b se află în M, atunci b+x și b+y se află în M.

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

S-ar putea sa iti placa