Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | dubi.in, dubi.out | Sursă | Junior Challenge 2015 |
Autor | Andrei Constantinescu, Costin Oncescu | Adăugată de | |
Timp execuţie pe test | 0.25 sec | Limită de memorie | 65536 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Funcţia Dubioasă
Chappie, roboţelul, a primit o sarcina nouă de la tatăl sau, Ninja, şi anume împărţirea în mai multe judeţe a unei ţări pe care tocmai au pus stăpânire. Ţară asediată de Ninja conţine N oraşe numerotate de la 1 la N. Ninja doreşte o împărţire în număr minim de judeţe astfel încât oricare două oraşe dintr-un judeţ să aibă un drum direct între ele. În împărţirea sa Chappie trebuie să aibă grijă ca fiecare oraş să aparţină exact unui singur judeţ. Unchiul său, Amerika, este responsabil de construirea drumurilor. Acesta construieşte un drum direct între oraşele numerotate X şi Y dacă şi numai dacă min (X, Y) ≤ X xor Y ≤ max (X, Y) (cu alte cuvinte, dacă numărul X xor Y se află între X şi Y).
Cum Chappie este ocupat să "adoarmă" oamenii care au furat de la tatăl lui, el va cere ajutorul în schimbul căruia veţi primi 100 de puncte.
Date de intrare
Fişierul de intrare dubi.in contine pe prima linie numarul N de orase.
Date de ieşire
În fişierul de ieşire dubi.out se va afisa pe prima linie numarul de K judete din impartire. Liniile de la 2 la K + 1 vor reprezenta descrierea fiecarui judete in parte, astfel: pe linia i + 1 se afiseaza mai intai numarul de orase din judetul i si apoi orasele in ordine crescatoare, separate prin cate un spatiu.
Restricţii
- 1 ≤ N ≤ 200000
- Subtask 1 (20 puncte): 1 ≤ N ≤ 20
- Subtask 2 (20 puncte): 1 ≤ N ≤ 212 si N este o putere a lui 2
- Subtask 3 (60 puncte): Restrictii initiale
Exemplu
dubi.in | dubi.out |
---|---|
4 | 3 2 1 3 1 2 1 4 |
Explicaţie
In total vor fi 3 judete (doua formate doar din cate un oras, respectiv 2 si 4, singurul drum existand in judetul format din orasele 1 si 3). Drumul 1 3 exista deoarece 1 ≤ 1 xor 3 = 2 ≤ 3.