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 sarcină nouă de la tatăl său, Ninja, şi anume împărţirea în mai multe judeţe a unei ţări pe care tocmai au pus stăpânire. Ţara 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.în conţine pe prima linie numărul N de oraşe.
Date de ieşire
În fişierul de ieşire dubi.out se va afişa pe prima linie numărul K de judeţe din împărţire. Liniile de la 2 la K + 1 vor reprezenta descrierea fiecărui judeţe în parte, astfel: pe linia i + 1 se afişează mai întâi numărul de oraşe din judeţul i şi apoi oraşele în ordine crescătoare, separate prin câte un spaţiu.
Restricţii şi precizări
- 1 ≤ N ≤ 2 * 105
- Observaţie: operaţia xor pe biţi reprezintă adunarea bit cu bit fără transport (de exemplu 1100 xor 1010 = 0110).
- Atentie! Fiecare subtask are testele grupate!
- Subtask 1 (20 puncte): 1 ≤ N ≤ 20 (Feedback testul 2)
- Subtask 2 (20 puncte): 1 ≤ N ≤ 212 şi N este o putere a lui 2 (Feedback testul 4)
- Subtask 3 (60 puncte): Restricţii iniţiale (Feedback testul 9)
Exemplu
dubi.in | dubi.out |
---|---|
4 | 3 2 1 3 1 2 1 4 |
Explicaţie
În total vor fi 3 judeţe (două formate doar din câte un oraş, respectiv 2 şi 4, singurul drum relevant existând în judeţul format din oraşele 1 şi 3). Drumul 1 3 există deoarece 1 ≤ 1 xor 3 = 2 ≤ 3.