Răspuns :
#include <iostream>
#include <queue>
using namespace std;
int v[10001];
int main() {
int n, a, x, y;
cin >> n >> a >> x >> y;
queue <int> c;
c.push(a);
v[a] = true;
while(!c.empty()) {
int val = c.front();
if(val + x <= n && !v[val + x]) {
c.push(val + x);
v[val + x] = true;
}
if(val + y <= n && !v[val + y]) {
c.push(val + y);
v[val + y] = true;
}
c.pop();
}
for(int i = 0; i <= n; i++)
if(v[i] == true)
cout << i <<" ";
return 0;
}
Observatie :
Avand in vedere faptul ca vectorul este folosit doar pentru a marca elementele care au fost adaugate in coada, se poate utiliza bitset (daca stii ce este) pentru economisirea memoriei.
#include <queue>
using namespace std;
int v[10001];
int main() {
int n, a, x, y;
cin >> n >> a >> x >> y;
queue <int> c;
c.push(a);
v[a] = true;
while(!c.empty()) {
int val = c.front();
if(val + x <= n && !v[val + x]) {
c.push(val + x);
v[val + x] = true;
}
if(val + y <= n && !v[val + y]) {
c.push(val + y);
v[val + y] = true;
}
c.pop();
}
for(int i = 0; i <= n; i++)
if(v[i] == true)
cout << i <<" ";
return 0;
}
Observatie :
Avand in vedere faptul ca vectorul este folosit doar pentru a marca elementele care au fost adaugate in coada, se poate utiliza bitset (daca stii ce este) pentru economisirea memoriei.
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!