Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2018-09-28 21:24:22.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:fraud.in, fraud.outSursăACM-ICPC Faza Nationala 2018
AutorMihai CalanceaAdăugată de
Timp execuţie pe test0.25 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Fraud

Unchiul tău Reginaldius este foarte bogat. Fiind foarte bogat, are acces la produse şi servicii rar întâlnite, ca de exemplu primii roboţi de pe piaţă care joacă rol de servitori. Unchiul Reginaldius are un astfel de robot, care, printre altele, are sarcina de a cumpăra brânzeturi pentru bucătăria unchiului. Astăzi, unchiul tău te-a sunat şi ţi-a spus că el este destul de convins că robotul îl fură atunci când cumpără brânzeturile. Bineînţeles, asta nu e o problemă reală pentru el, fiindcă este foarte bogat, dar este foarte interesat de perspectivă publicării unui paper pe această tema, pentru care deja a ales un nume:

"Tu ştii cu ce seturi de date se antrenează robotul tău când nu eşti acasă?".

Înainte de a face acest lucru, el trebuie să se asigure de ipoteza sa, iar aici îi vii tu în ajutor. În continuare vom formaliza situaţia din bucătăria unchiului Reginaldius şi cerinţa sa:

- Bucătăria unchiului Reginaldius conţine 9 tipuri diferite de brânză.
- Fiecare tip de brânză poate fi cumpărat la kg. Pentru fiecare tip de brânză, preţul unui kilogram din tipul respectiv este un numar natural ales aleator uniform din intervalul [1, 1000].
- În fiecare zi, robotul merge la cumpărături. El alege o submulţime a celor 9 tipuri şi cumpără un kilogram din fiecare. Submulţimea este aleasă aleator uniform din mulţimea tuturor submulţimilor de brânzeturi, inclusiv mulţimea vidă.
- Robotul face apoi suma preţurilor per kilogram pentru brânzeturile din ziua respectivă, fie ea egală cu S.
- Dacă robotul este corect, el îi va spune unchiului că a cheltuit o sumă egală cu S.
- Dacă robotul este incorect (a se citi hoţ), el îi va spune unchiului că a cheltuit o sumă egală cu ceil(S + X * S) unde X este un număr din mulţimea {0.01, 0.02, 0.03, 0.04, 0.05}. X este ales aleator uniform din această mulţime. X este regenerat în fiecare zi. Cu alte cuvinte, robotul va mări suma arătată unchiului cu un procent ales aleator între 1 şi 5 şi apoi o va rotunji superior la un întreg.
- Unchiul îţi oferă sumele arătate de robot pentru ultimele 365 de zile şi atât. Nu ştie nici ce preţuri au brânzeturile, nici ce submulţimi a ales robotul în fiecare zi, ci presupune doar că acestea au fost generate conform algoritmului de mai sus.

Poţi ghici doar din sumele arătate de robot dacă acesta este corect sau incorect? Mai exact, vei primi 200 de seturi de date, fiecare conţinând 365 de sume. Pentru fiecare set, algoritmul de generare a fost rulat independent şi s-a ales aleator uniform dacă setul este generat cu un robot corect sau unul incorect. Tu trebuie să analizezi datele şi să afişezi pentru fiecare set dacă crezi că este corect sau incorect. Pentru a rezolva această problemă trebuie să răspunzi corect pentru cel puţin 196/200 din seturi.

Date de intrare

Fişierul de intrare fraud.in va conţine 200 de seturi de date. Fiecare set de date este descris pe o singură linie şi conţine exact 365 de numere naturale, reprezentând sumele arătate de robot unchiului în fiecare zi din ultimul an.

Date de ieşire

În fişierul de ieşire fraud.out se vor afla 200 de linii, fiecare conţinând fie şirul "Corect", fie şirul "Incorect", în funcţie de concluzia trasă de tine pentru fiecare set în parte.

Restricţii

  • Fiecare set de date este generat independent.
  • Va exista un singur fişier de test, acesta conţinând 200 de seturi, conform descrierii de mai sus.
  • Comisia are o soluţie pentru care probabilitatea de a rezolva mai puţin de 196 de seturi este neglijabilă.

Exemplu

fraud.infraud.out
123 45 6 100 45 ... (alte 360 de valori)
100 35 40 510 300 ... (alte 360 de valori)
... (alte 198 de linii)
Corect
Incorect
Corect
...(alte 197 de linii)

Explicaţie

Nu putem reda un exemplu complet, din cauza dimensiunilor prea mari ale fişierului. Exemplul de mai sus este ales să ilustreze formatul fişierului şi nu este neaparat un fragment dintr-un fişier generat prin algoritmul din enunţ.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?