Diferente pentru problema/perrynator intre reviziile #23 si #68

Nu exista diferente intre titluri.

Diferente intre continut:

== include(page="template/taskheader" task_id="perrynator") ==
Poveste şi cerinţă...
O, nu! Agent P a căzut în capcana doctorului Doofenshmirtz! Acesta i-a dezvăluit planul său malefic, acela de a folosi ultima lui invenţie, Perrynatorul, pentru a eradica toţi ornitorincii de pe faţa Pământului. Dar Perry e mereu cu un pas înainte. Odată evadat ("în stilul său bine-cunoscut":https://www.youtube.com/watch?v=s7csirM-fLw), găseşte panoul de control al Perrynatorului. Spre mirarea lui, pentru a-şi salva specia, el trebuie să găsească o permutare secretă! Dându-i-se numărul $N$ de elemente ale permutarii, el are la dispoziţie următoarea operaţie: întreabă, pentru un set de poziţii din permutare, care este minimul dintre valorile de pe acele poziţii. Dar Doofenshmirtz îi face viaţa un calvar! După fiecare query, elementele **din afara** setului întrebat se permută cu _**o poziţie**_ +la stânga **sau** la dreapta+. Din păcate, P nu ştie să vă spună în care parte se rotesc, aşa că sunteţi pe cont propriu.
h2. Date de intrare
!{width: 300px; float: right; margin: 10px}problema/perrynator?Doofenshmirtz_Evil_Incorporated.jpg!
Fişierul de intrare $perrynator.in$ ...
h2. Interaiune
h2. Date de ieşire
Iniţial se citte din _stdin_ numărul N.
După fiecare query, inclusiv cel final trebuie să afişaţi '\n' şi să daţi flush la _standard output_. Pentru a da flush vă puteţi folosi de următorul tabel.
Programul vostru are voie să pună query-uri scriind în _standard output_:
 
* <tex>?</tex><tex> k</tex><tex> p_1</tex> <tex> p_2</tex> <tex> ... </tex> <tex>p_k</tex>
 
După fiecare astfel de query interactorul vă va răspunde în _stdin_ cu un număr din mulţimea <tex> \{1, 2,.., N\} </tex>, reprezentând minimul valorilor de pe acele poziţii, **la momentul queryului.**
 
Când sunteţi siguri că aţi aflat permutarea, afişaţi un query de forma:
 
* <tex>!</tex><tex> p_1</tex> <tex> p_2</tex> <tex> ... </tex> <tex>p_N</tex>
 
reprezentând permutarea **la acel moment.** Pe scurt, nu trebuie să aflaţi permutarea iniţială, ci doar cea de după queryuri.
 
După fiecare query, inclusiv cel final trebuie să afişaţi '\n' şi să daţi flush la _standard output_. Pentru a da flush vă puteţi folosi de următorul tabel:
table(example). |_. Limbaj |_. C/C++ |_. Pascal |_. Python |_. Java |_. Rust |
|Header necesar| ‎| import sys | ‎| use std::io::{self,Write}; |
|Header necesar| ‎| import sys | ‎| use std::io::{self,Write}; | ‎|
|Funcţie|fflush(stdout) sau cout.flush()|flush(output)|sys.stdout.flush()|System.out.flush()|io::stdout().flush().unwrap();|
h2. Restricţii
* $1 &le; N &le; 100$
* $Pentru teste în valoare de 20 de puncte, shiftarea se face doar la dreapta.$
* $Pentru alte teste în valoare de 20 de puncte, N = 4.$
* 1 &le; N &le; 100
* Pentru teste în valoare de 20 de puncte, shiftarea se face doar la dreapta.
* Pentru alte teste în valoare de 20 de puncte, N &le; 4.
* Pentru cel mult 205 query-uri (fără cel final), punctajul pe test este de 100%
* Pentru mai mult de 205 query-uri (fără cel final), punctajul pe test este de 50%
* Pentru mai mult de 10000 query-uri (fără cel final), punctajul pe test este de 0%
h2. Exemplu
table(example). |_. perrynator.in |_. perrynator.out |
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
|
table(example). |_. stdin |_. stdout |
| 5
 
  3
 
  2
|  ‎
  ? 1 3
 
  ? 2 1 4
 
  ! 5 3 4 2 1|
h3. Explicaţie
...
Permutarea secretă era <tex>1\;2\;3\;4\;5</tex>. După primul query, Perry primeşte numărul 3, semnificând chiar că pe poziţia 3 se află 3, iar permutarea putea deveni:
 
*<tex>2\;4\;3\;5\;1</tex>$, adică permutare la stânga.$
*<tex>5\;1\;3\;2\;4</tex>$, adică permutare la dreapta.$
 
deoarece poziţia 3 rămâne pe loc, iar celelalte se pot permuta la stânga **sau** la dreapta. Perrynatorul a ales să fie <tex>5\;1\;3\;2\;4</tex>, adică la dreapta.
 
La fel, după al doilea query, Perry primeşte $min(5,2) = 2$, permutarea putând deveni:
 
*<tex>5\;4\;1\;2\;3</tex>$, la dreapta.$
*<tex>5\;3\;4\;2\;1</tex>$, la stânga.$
 
Perrynatorul a ales-o pe <tex>5\;3\;4\;2\;1</tex>, adică la stânga, iar Perry pur şi simplu a ghicit-o şi şi-a salvat specia.
Reamintim că Perrynatorul nu este nici sub controlul nostru, noi îl ajutăm pe Perry, aşa că nici noi nu ştim în ce parte alege să permute.
== include(page="template/taskfooter" task_id="perrynator") ==

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.