Fişierul intrare/ieşire:xcopy.in, xcopy.outSursăEJOI 2021, ziua 1
AutorPop Ioan Cristian, Tulba-Lecu GabrielAdăugată decadmium_Voicu Mihai Valeriu cadmium_
Timp execuţie pe test0.5 secLimită de memorie262144 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

XCopy

Astăzi, la finalul orei de informatică, profesorul a dat ca temă pentru acasă o problemă foarte dificilă, aşa că elevii s-au hotărât să copieze unii de la alţii. Vor trebui totuşi să lucreze cât mai deştept pentru a nu fi prinşi că au copiat.

Clasa este alcatuită din N × M elevi, aşezaţi în bănci pe N rânduri şi M coloane. Spunem că doi elevi sunt vecini dacă se află în bănci adiacente fie pe rânduri, fie pe coloane. Tema fiecărui copil constă în găsirea unui număr natural. Pentru ca elevii să nu fie prinşi că au copiat, toate temele acestora vor trebui să fie distincte. Mai mult, elevii sunt foarte leneşi, aşa că îşi vor modifica tema foarte puţin faţă de tema vecinilor. Mai exact, tema oricarui elev diferă prin exact un bit în scrierea în baza 2 faţă de tema oricărui vecin al său. De exemplu 3 şi 2 diferă prin exact un bit, pe când 2 şi 4 diferă prin doi biţi.

Pentru a nu ridica suspiciuni prea mari, elevii doresc să creeze temele astfel încât cea mai mare valoare a unei teme să fie cât mai mică posibil. Fiind date dimensiunile clasei, N şi M, contruiţi o configuraţie a valorilor temelor fiecarui elev din clasă astfel încât profesorul să nu îşi dea seama că aceştia au copiat.

Date de intrare

Pe prima şi singura linie a fişierul de intrare xcopy.in se vor afla 2 numere separate printr-un singur spaţiu, N şi M cu semnificaţia de mai sus.

Date de ieşire

Datele de ieşire, ce vor fi afişate în fişierul de ieşire xcopy.out, constau în afişarea configuraţiei temelor fiecărui elev. În fişier se vor afla N rânduri, iar pe fiecare rând se vor afla M numere naturale separate printr-un spaţiu. Acestea reprezintă răspunsurile copiilor, corespunzătoare poziţiei lor în clasă.

Restricţii

  • 1 ≤ N, M ≤ 2000 Restricţii
  • În plus:
#PunctajRestricţii
17N=1
29N şi M sunt puteri de 2
314N este o putere de 2
470Nicio restricţie suplimentara

Punctare

Această problemă acceptă şi soluţii parţiale, astfel se va acorda punctaj parţial pentru fiecare test, în
funcţie de cât de aproape de răspunsul optim este soluţia dată folosind următoarea formulă:

 S \cdot \max (\left{1 - \sqrt{\dfrac{\frac{G}{O} - 1}{3}}}, \right{0})

Unde:

  • S este punctajul testului,
  • G este răspunsul dat,
  • O este răspunsul optim.

Atenţie! O soluţie care nu respectă toate cerinţele problemei pentru un anumit test (toate numerele să fie distincte şi oricare două numere adiacente să difere printr-un singur bit) va fi punctata cu 0 pe acel test

Exemplu

xcopy.inxcopy.out
3 3
5 4 6
1 0 2
9 8 10

Explicaţie

În această secţiune, indicele poziţionat in dreapta-jos a numărului reprezintă baza în care este scris. Spre exemplu, opt poate fi scris drept 810 = 1000 2

Unul dintre răspunsurile optime pentru copii sunt date în urmatorul tabel:

01012 = 51001002 = 41001102 = 610
00012 = 11000002 = 01000102 = 210
10012 = 91010002 = 81010102 = 1010

Putem observa că între oricare două bănci adiacente numerele elevilor din acele bănci diferă cu exact un bit. Valoarea maximă a soluţiei este 10 si este răspunsul optim. Este evident că există şi alte răspunsuri optime – spre exemplu, soluţia propusa dar oglindită vertical sau orizontal.

Una dintre soluţiile parţiale posibile în care maximul este 15 este:

011020111201012
111021111211012
101021011210012

Această soluţie ar fi punctată, conform formulei de punctare, cu 59, 1% din punctajul testului.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?