Pentru a converti un număr din zecimal în binar îl vom împărți la în mod repetat, până ce obținem câtul zero. Apoi vom colecta resturile obținute de la ultimul către primul. Aceste resturi sunt cifrele din reprezentarea binară a numărului dat, de la stânga la dreapta. De exemplu, .
Cerinţă
Scrieţi un program care, pentru un şir dat de numere naturale, rezolvă următoarele cerințe:
- Determină cel mai mare dintre cele numere date ce are număr maxim de valori de în reprezentarea binară.
- Determină cea mai lungă secvență de numere care au număr egal de valori de în reprezentarea binară. Dacă sunt mai multe astfel de secvențe de lungime maximă, se va alege cea mai din stânga. O secvență este un subșir de numere care apar pe poziții consecutive în șirul inițial.
Date de intrare
Fişierul binar.in
conţine pe prima linie numărul reprezentând cerința ( sau ), pe a doua linie numărul natural , iar pe a treia linie numere naturale separate prin câte un spațiu.
Date de ieşire
Dacă , atunci pe prima linie a fişierului de ieşire binar.out
se va scrie numărul ce reprezintă răspunsul la cerința .
Dacă , atunci pe prima linie a fişierului de ieşire binar.out
se vor scrie, separate printr-un spațiu, lungimea maximă a secvenței determinate și poziția primului termen din secvență (se consideră că primul număr din cele numere date se găsește pe poziția ).
Restricții și precizări
- ;
- Valorile din șirul de intrare sunt numere naturale de cel mult cifre.
- Pentru din teste cerinţa va fi .
Exemplul 1
binar.in
1
7
16 12 3 5 14 13 11
binar.out
14
Explicație
; ; ; ; ; ; ;
Cel mai mare număr de valori de dintr-o reprezentare binară este ; cel mai mare număr ce are de în reprezentarea binară este .
Exemplul 2
binar.in
2
7
16 12 3 5 14 13 11
binar.out
3 2
Explicație
Sunt două secvențe de lungime maximă de numere care au număr egal de valori de în reprezentarea binară: și . O vom alege pe cea mai din stânga, care are lungimea și începe la poziția .