Cerință
C. este proprietara cafenelei Abbey Road de pe strada cu același nume din Londra. Deasupra intrării în Abbey Road se află un semn cu becuri galbene, care pot fi aprinse sau stinse, numerotate de la la . Pentru simplitate, în continuare vom reprezenta stările becurilor printr-un șir binar , unde descrie starea celui de-al -lea bec: dacă e stins și dacă e aprins.
Definim un fragment al semnului drept o subsecvență maximală a sa în care toate becurile au aceeași stare. De exemplu, șirul de becuri se împarte în fragmente astfel: .
C. e de părere că becurile trebuie să aibă o configurație cu număr maxim de fragmente, deoarece ar atrage mai mulți clienți. Starea unui bec se poate modifica apăsând un buton aflat în spatele său.
Din păcate, C. este cam scundă și nu ajunge la butoane. Singura metodă prin care ea poate apăsa pe butoane este cu ajutorul unui băț bifurcat, cu care poate doar să apese, simultan, pe butoanele și , unde .
C. nu își dă seama cum să apese pe butoane ca să obțină o configurație cu număr maxim de fragmente a becurilor, așa că vă cere ajutorul.
Pentru a obține puncte pentru un test, este nevoie ca șirul să conțină cel puțin fragmente. Dacă șirul nu conține numărul maxim de fragmente, veți primi un punctaj între 30 și 70 de puncte, în funcție de cât de departe sunteți de numărul maxim de fragmente care se pot obține pe acel test.
Date de intrare
Pe prima linie din input se găsește numărul - numărul de scenarii care trebuie rezolvate. Pentru fiecare dintre aceste scenarii, formatul de intrare este următorul:
Pe prima linie se găsește numărul . Pe a doua linie se găsește șirul .
Date de ieșire
Pentru fiecare dintre cele teste, formatul de ieșire este următorul:
Pe prima linie se va afișa () - numărul de operații necesare. Pe a doua linie se vor afișa numere din intervalul , reprezentând indicele pentru fiecare operație.
Scorul unui fișier de test se va considera minimul dintre scorurile celor test din el. Dacă notăm cu numărul de fragmente din soluția concurentului și cu numărul de fragmente maxim care se poate obține, formula pentru scor este următoarea:
Dacă există mai multe soluții, se poate afișa oricare.
Restricții și precizări
- ;
- Suma valorilor lui pe fiecare test nu va depăși ;
- Pentru teste în valoare de puncte, ;
- Pentru teste în valoare de alte puncte, ;
- Pentru teste în valoare de alte puncte, ;
- Pentru teste în valoare de alte puncte, ;
Exemplul 1
stdin
2
4
0101
4
0000
stdout
0
2
0 1
Explicație
Pentru primul șir, avem deja numărul maxim de fragmente pe care îl putem obține.
Pentru cel de al doilea șir, aplicăm operația pe poziția , șirul devenind . Aplicăm din nou operația pe poziția , șirul devenind . Aceset șir are număr maxim de fragmente.