Comisia a ascuns un șir format din numere naturale. Se garantează că șirul admite un element majoritar (un element care apare de strict mai mult de ori în șir).
Fiindcă elementul majoritar din șirul inițial este prea evident, Comisia vă cere să aflați un indice (o poziție) la care se află acesta, cât și frecvența cu care el apare în șirul ascuns . Pentru a face asta, puteți interacționa cu programul comisiei. La o întrebare, puteți alege un subșir de indici și puteți întreba dacă elementele de la acele poziții admit, la rândul lor, un element majoritar sau nu.
Protocol de interacțiune
Puteți pune întrebări afișând pe o linie folosind std::cout (urmat de std::cout << std::endl):
Aici () reprezintă numărul de indici interogați, iar () trebuie să fie indici distincți.
Pentru fiecare întrebare, Comisia va răspunde la intrarea standard cu un număr pe o linie nouă:
1: Elementele aflate la indicii interogați admit un element majoritar.0: Elementele aflate la indicii interogați nu admit un element majoritar.-1: Ați pus o întrebare invalidă, ați interogat aceiași indici de mai multe ori într-un query, sau ați depășit limita maximă absolută de întrebări. (În acest caz, programul vostru trebuie să se oprească imediat pentru a primi Wrong Answer, altfel riscați Time Limit Exceeded).
Când sunteți siguri de răspuns, trebuie să afișați pe o linie folosind std::cout (urmat de std::cout << std::endl):
unde reprezintă un indice (orice valoare validă între și ) la care se află elementul majoritar, iar reprezintă frecvența (numărul de apariții) acestuia în șirul inițial . Aici se termină interacțiunea.
Punctare
Fie numărul de întrebări de tip ? puse de programul vostru.
Dacă interacțiunea este invalidă sau programul nu afișează un răspuns corect, punctajul pe test este 0.
În caz contrar, punctajul pe un test se acordă astfel:
- Dacă , veți primi 100% din punctajul testului.
- Dacă , punctajul este
- Dacă , veți primi 40% din punctajul testului.
- Dacă , dar programul afișează răspunsul corect în limita de timp, veți primi 20% din punctajul testului.
Date de intrare și ieșire
Pe prima linie a datelor de intrare veți primi numărul . Apoi, programul vostru trebuie să citească răspunsurile pentru fiecare întrebare pusă. Toate întrebările se vor afișa la datele de ieșire, respectând formatul precizat în secțiunea Protocol de interacțiune. Nu uitați să afișați la final răspunsul sub forma ! I F.
Restricții
- NU se garantează evaluarea în limita de timp a soluției dacă numărul total de elemente interogate este mai mare decât .
| # | Scor | Restricții |
|---|---|---|
| 1 | 19 | |
| 2 | 42 | |
| 3 | 23 | |
| 4 | 16 | Fără alte restricții |
Exemple
| Input | Ouptut | Explanation |
|---|---|---|
5 |
Șirul ascuns de comisie este . . | |
? 3 1 2 3 |
Concurentul întreabă indicii 1, 2 și 3 (). | |
1 |
Există majoritar (elementul 3). | |
? 3 3 4 5 |
Concurentul întreabă indicii 3, 4 și 5 (). | |
0 |
Nu există un element majoritar. | |
? 4 1 2 4 5 |
Concurentul întreabă indicii 1, 2, 4 și 5 () | |
1 |
Există majoritar (elementul 3). | |
! 1 3 |
În urma acestor deducții, concurentul este sigur că elementul majoritar se află (printre altele) la indicele 1 și că el apare de 3 ori în tot șirul. |