După ce a petrecut ca un student adevărat la balul bobocilor, Armando ajunge acasă aproape de zorii zilei și, după ce își încuie ușa (ca orice om responsabil), se culcă. Acesta se trezește la lăsarea serii și realizează că a aprins mai multe becuri dimineață în timp ce se chinuia să ajungă în pat. Din păcate, Armando trăiește într-un palat, așa că el are întrerupătoare și becuri (unele aprinse, altele stinse). Totuși, deși este bogat, nu a reușit să găsească un electrician priceput, așa că, numerotând întrerupătoarele crescător de la stânga la dreapta, întrerupătorul schimbă starea sa și a tuturor becurilor din dreapta lui. Formal, odată apăsat întrerupătorul , acesta schimbă starea becurilor . Dacă un bec era aprins, acesta se stinge, iar dacă el era stins, acesta se aprinde.
Cerință
Armando, fiind încă amețit după petrecerea de aseară, vă cere ajutorul și de această dată. El vă roagă să îi spuneți un mod de a stinge toate becurile apăsând pe un număr minim de întrerupătoare.
Date de intrare
Pe prima linie se găsește un număr natural, (cu semnificația din enunț). Pe următoarea linie se află elemente cu valori de sau . Dacă al -lea element, de la stânga la dreapta, este , atunci al -lea bec este stins. Analog, dacă al -lea element este , becul este aprins.
Date de ieșire
Pe prima linie se va găsi numărul minim de întrerupătoare pe care Armando ar trebui să le apese pentru a stinge toate becurile, iar pe a doua linie se vor afișa indicii acestor întrerupătoare, în ordinea în care acestea trebuie apăsate. Dacă există mai multe soluții cu număr minim de apăsări de întrerupătoare, se poate afișa oricare.
Restricții și precizări
- ;
- Cel puțin un bec este aprins;
- Pentru de puncte, se garantează că ;
- Pentru restul de de puncte, nu există restricții suplimentare.
Exemplu
stdin
8
1 0 1 0 1 1 0 0
stdout
6
1 2 7 4 5 3
Explicație
Pentru a stinge toate becurile, el trebuie să apese, pe rând, pe întrerupătoarele , , , , și .
Înainte de a apăsa vreun întrerupător becurile arată în modul următor:
După ce apasă pe întrerupătorul , becurile vor arăta în modul următor:
După ce apasă pe întrerupătorul , becurile vor arăta în modul următor:
După ce apasă pe întrerupătorul , becurile vor arăta în modul următor:
După ce apasă pe întrerupătorul , becurile vor arăta în modul următor:
După ce apasă pe întrerupătorul , becurile vor arăta în modul următor:
După ce apasă pe întrerupătorul , becurile vor arăta în modul următor: