#include #include using namespace std; bool zbirk(const int trazeni, const vector &a, vector &poseceni, const int n, int poz) { if(trazeni == poz) return true; if(poz >= n || poz < 0 || poseceni[poz]) return false; poseceni[poz] = true; return zbirk(trazeni, a, poseceni, n, poz + a[poz]) || zbirk(trazeni, a, poseceni, n, poz - a[poz]); } int main() { int n; cin >> n; vector a(n); for(int &x : a) cin >> x; int q = 5; vector k(q); vector poseceni(n); for(int i = 0; i < n; i++) poseceni[i] = false; int upit; for(int i = 0; i < q; i++) { cin >> upit; vector poseceni_kopija = poseceni; k[i] = zbirk(upit, a, poseceni_kopija, n, 0); } for(int i = 0; i < q; i++) { cout << (k[i] ? "MOGUCE" : "NIJE MOGUCE") << endl; } }