Prihlásenie Registrácia  

306 - Cukríky

Časový limit: 2s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3
Obtiažnosť: Stredná Stredná

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]


Rovnako ako veľké fimy sa snažia motivovať svojich zamestnancov, aj Strom by chcel motivovať k úspechu práve cukríkmi. V súčastnosti má Strom n (1≤n≤1000) riešiteľov. Z projektu Cukríky deťom sa už podarilo zakúpiť m (1≤m≤10000 , n≤m) balení cukríkov. Rada združenia ale rozhodla, že každý riešiteľ musí dostať rovnako veľa cukríkov. Žiadne nerovnosti, žiadne privilégiá, všetci sú si rovní. Naneštastie sa však ukázalo, že nie v každom balení je rovnako veľa cukríkov. Nie nutne všetky balenia musíme použiť na tento účel (niečo si môžme nechať na sklade aj na inú príležitosť). Chceme ale rozbaliť také balenia cukríkov, aby sme všetky cukríky z nich mohli poslať našim riešiteľom. Nechceme si nechať žiaden už rozbalený balíček. Vašou úlohou bude napísať program, ktorý určí ktoré balíčky máme rozbaliť. Ak existuje riešení viac, stací vypísať ľubovoľné z nich. Ak riešenie neexistuje, výstupom bude riadok "no solution."

Vstup

Prvý riadok bude obsahovať číslo p≤ 100. Ďalej bude nasledovať p sád vstupu. Každá sada je tvorená dvoma riadkami. V prvom budú čísla n m. Druhý riadok bude obsahovať m celých čísel = počet cukríkov v jednotlivých balíčkoch. Môžete predpokladať, že v každom balíčku je aspoň jeden, ale nie viac ako 100 cukríkov.

Výstup

Pre každú sadu vstupu má Váš program vypísať 2 riadky. V prvom riadku bude jediné číslo = počet balíčkov, ktoré treba otvoriť. V druhom riadku budú poradové čísla balíčkov, v rastúcom poradí, ktoré sa majú otvoriť. Ak žiadne riešenie neexistuje, stačí vypísať jeden riadok "no solution". Pripomeňme ešte, že neotvorenie žiadneho balíčka nepovažujeme za riešenie.

Príklad

Vstup

2
4 5
13 10 11 7 2
6 6
1 2 2 3 7 8

Výstup

3
2 3 4
3
1 2 4
Problem by Jan Katrenic.