binar

Sa consideram o secventa de N cifre binare B=(b1, b2, ..., bN). Construim matricea M dupa cum urmeaza:
- prima linie a matricei M este secventa B;
- fiecare linie a matricei M (exceptând prima linie) se obtine din linia precedenta printr-o permutare circulara catre stânga.
b1 b2 ... bN-1 bN
b2 b3 ... bN b1
...
bN-1 bN ... bN-3 bN-2
bN b1 ... bN-2 bN-1
Apoi, liniile matricei M sunt sortate lexicografic (evident, 0<1).

Cerinta
Scrieti un program care sa citeasca ultima coloana a matricei M (dupa sortarea lexicografica a liniilor) si care sa determine prima linie a matricei M (de asemenea, dupa sortarea lexicografica a liniilor).

Date de intrare
Fisierul de intrare binar.in contine pe prima linie un numar natural N, care reprezinta lungimea secventei binare B. Pe cea de a doua linie a fisierului de intrare se afla N cifre binare, separate prin câte un spatiu, reprezentând ultima coloana a matricei M.

Date de iesire
Fisierul de iesire binar.out va contine o singura linie pe care vor fi scrise N cifre binare reprezentând prima linie a matricei M. Cele N cifre binare nu vor fi separate prin spatii.

Restrictii
0 < N <= 1000

Exemple

binar.in binar.out binar.in binar.out
5
1 0 0 1 0
00011 8
1 1 0 1 1 0 1 0
00111011

Timp maxim de executie/test: 0.1 secunde

Marinel Serban
Liceul de Informatica "Gr. C. Moisil" Iasi
marinel_serban@yahoo.com