Fişierul intrare/ieşire:dubi.in, dubi.outSursăJunior Challenge 2015
AutorAndrei Constantinescu, Costin OncescuAdăugată deJuniorChallenge2015JuniorChallenge2016 JuniorChallenge2015
Timp execuţie pe test0.25 secLimită de memorie65536 kbytes
Scorul tăuN/ADificultateN/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.indubi.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.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?