G. To‘ldiruvchi juftliklar
2500 ball
Litseyda «O‘zaro yordam» loyihasi boshlanmoqda. Fanlar M ta, ular 1 dan M gacha raqamlangan. N ta o‘quvchining har biri o‘zi kuchli bo‘lgan fanlarni aytgan: i-o‘quvchi uchun M ta belgidan iborat satr sᵢ berilgan — uning j-belgisi 1 bo‘lsa, o‘quvchi j-fandan kuchli, 0 bo‘lsa — yo‘q.
Ikki o‘quvchi to‘ldiruvchi juftlik tuzadi, agar ikkalasi ham kuchli bo‘lgan birorta ham fan bo‘lmasa — shunda ular bir-biriga har xil fanlardan yordam bera oladi. (Hech qaysi fandan kuchli bo‘lmagan o‘quvchi har kim bilan to‘ldiruvchi juftlik tuzadi.)
Loyiha rahbari Gulnora opa har bir o‘quvchi uchun bilmoqchi: u boshqa nechta o‘quvchi bilan to‘ldiruvchi juftlik tuza oladi?
Kirish ma’lumotlari
Birinchi qatorda ikkita butun son N va M — o‘quvchilar va fanlar soni.
Keyingi N qatorning i-sida M ta belgidan (0 yoki 1) iborat satr sᵢ.
Chiqish ma’lumotlari
Bitta qatorda bo‘sh joy bilan ajratilgan N ta butun son: i-son — i-o‘quvchi bilan to‘ldiruvchi juftlik tuza oladigan boshqa o‘quvchilar soni.
Cheklovlar
- 1 ≤ N ≤ 2·10⁵
- 1 ≤ M ≤ 20
- Bir xil satrli o‘quvchilar bo‘lishi mumkin.
Misollar
4 4 1010 0101 1100 0000
2 2 1 3
3 2 11 11 00
1 1 2
Tushuntirish
1-misol: 1-o‘quvchi (1- va 3-fan) 2-o‘quvchi (2- va 4-fan) bilan ham, 4-o‘quvchi bilan ham to‘ldiruvchi juftlik tuzadi, 3-o‘quvchi bilan esa yo‘q — ikkalasi 1-fandan kuchli. 3-o‘quvchi (1- va 2-fan) faqat 4-o‘quvchi bilan juftlik tuzadi. 4-o‘quvchi hech qaysi fandan kuchli emas — uchala o‘quvchi bilan.
2-misol: 1- va 2-o‘quvchi bir xil fanlardan kuchli, shuning uchun ular juftlik tuzmaydi.