Напомена: ово је незванична копија задатака. Као таква, не гарантује се да ће овај сајт бити одржаван, и немојте се изненадити ако са њега задаци одједном нестану.

У далекој земљи Бајтовији живи \(n\) програмера. За ову земљу је карактеристично то да су њени становници или истинољупци, они који увек говоре истину, или лажљивци, они који увек говоре лажи.

Нашли сте се на одмору у овој чудноватој земљи и желите да откријете једног од лажљиваца. Како не бисте трошили превише времена, желите то да урадите тако што ћете поставити највише \(q\) питања. Свако питање треба да поставите једном од становника Бајтовије и да га питате да ли међу становницима из скупа \(S = \{ s_1, s_2, \dots, s_k \}\) постоји непарно лажљиваца. Скуп \(S\) може да буде празан, а може и да садржи становника коме постављате питање.

Опис функција

Потребно је да имплементирате функцију

где је \(n\) број становника Бајтовије, \(q\) дозвољени број питања, а функција враћа индекс једног од лажова, или \(-1\) уколико сви становници говоре истину.

Ваш програм може да користи функцију

\(\text{Pitaj}(x, s)\)

која враћа одговор становника са индексом \(x\) на питање “да ли се у скупу \(s\) налзи непарно становника Бајтовије који лажу?”

Становници Бајтовије су индексирани од 1.

Информација о томе ко су истиниљупци, а ко лажљивци је фиксирана пре покретања ваше функције и не зависи од питања које постављате.

Ограничења

Тест примери су подељени у неколико подзадатака. У сваком подзадатку је дато ограничење \(q\), које представља дозвољен број позива функције \(\text{Pitaj}\).

Детаљи имплементације

Потребно је да пошаљете тачно један фајл који имплементира поменуту функцију. Осим тражене функције, ваш фајл може да садржи и додатне глобале променљиве, помоћне функције и додатне библиотеке.

Ваша функција мора бити следећег облика:

int NadjiLazova(int n, int q)

Ваш програм мора улључивати header code.h, у ком је дефинисана функција \(\text{Pitaj}\) следећег потписа:

bool Pitaj(int koga, vector<int> skup)

Уз задатак, обезбеђен вам је “template” фајл code.cpp који можете користити и мењати по потреби. Такође вам је обезбеђен програм grader.cpp који служи да лакше тестирате кодове. Овај програм учитава са стандардног улаза следеће податке:

Затим овај програм позива вашу функцију и штампа повратну вредност на екран. Уколико ваше решење користи функцију \(\text{Pitaj}\) више од \(q\) пута, биће прекинуто са статусом RTE (runtime error).