Masala #1207
Guruhlash
Sizda har birida \(2^i\) tadan odam bo'lgan \(A_i\) ta guruh bor. \((0 \le i \le N)\) (To'liqroq tushunish uchun izohga qarang).
Siz odamlarni bir nechta xonalarga joylashtirishingiz zarur. Bu uchun quyidagi shartlar bajarilishi kerak:
- Har bir xonada \(2^N\) tadan odam bo'lishi kerak.
- Bir guruhdagi odamlar bitta xonada bo'lishi kerak.
Nechta xona kerakligini yoki bu ish imkonsizligini aniqlang.
Birinchi qatorda \(N(0 \le N \le 30)\) soni kiritiladi.
Keyingi qatorda N+1 ta butun son - A massiv elementlari kiritiladi. \((0 \le A_i \le 10^9)\)
Kerakli xonalar sonini chop eting. Agar xonalarga joylashtirishning iloji bo'lmasa -1 ni chop eting.
# | input.txt | output.txt |
---|---|---|
1 |
3 4 2 0 2 |
3 |
2 |
1 3 0 |
-1 |
1-test: a, b, c, d harflarini 1, 2, 4 va 8 kishilik guruhlar deb tasavvur qilamiz. Quyidagicha joylashtirish mumkin: {a,a,a,a,b,b}, {d}, va {d}.
2-test uchun xonalarga joylash imkonsiz.