Algoritmul

Time limit: 1s Memory limit: 130MB Input: algoritmul.in Output: algoritmul.out

Cerință

Tudor și Luca sunt doi tineri programatori. Aceștia tocmai au terminat un curs de algoritmică avansată în C și încearcă să rezolve probleme cât mai eficient. Una dintre problemele la care se gândesc cei doi spune asta:

  • există un șir de NN biți consecutivi numerotați de la 11 la NN care inițial sunt setați pe 00
  • treptat toți biții vor fi transformați în 11 într-o ordine dată
  • pentru fiecare bit transformat spuneți care sunt capetele celei mai lungi secvențe de 11 din care bitul respectiv face parte

Cum Tudor a găsit soluția optimă într-un vis, Luca vă plătește să îi rezolvați și lui problema pentru a nu rămâne în urma prietenului său. Vă roagă să fiți foarte atenți datorită limitelor scăzute, cu cât mai ineficienți, cu atât mai puțini bani!!!

Date de intrare

Pe prima linie a fișierului de intrare algoritmul.in se găsesc un număr NN și un șir de NN numere a1,a2,,ana_1, a_2, \dots, a_n reprezentând ordinea în care se transformă biții de pe pozițiile aia_i.

Date de ieșire

Pe linia i a fișierului de ieșire algoritmul.out se vor găsi 2 valori, left și right reprezentând capetele secvenței din care bitul de pe poziția aia_i face parte.

Restricții și precizări

  • 1N10 000 0001 \leq N \leq 10 \ 000 \ 000;
  • Se acordă 2020 de puncte pentru 1N1 0001 \leq N \leq 1 \ 000;
  • Se acordă 5050 de puncte pentru 1N5 000 0001 \leq N \leq 5 \ 000 \ 000;
  • Testul 13 este exemplul așa că nu este punctat.
  • Datorită volumului mare de date citite și scrise, folosiți fișierul de parsing de la atașamente din dreapta ecranului.

Exemplu

algoritmul.in

6
3 4 1 6 2 5

algoritmul.out

3 3
3 4
1 1
6 6
1 4
1 6

Explicație

După cum se vede, inițial bitul de pe poziția 33 este transformat, 001000, deci secvența de care aparține este formată din el și persoana sa. După se transformă bitul 44, 001100, deci secvența lui începe la 33 și se termină la 44. După se transformă primul bit, dar este singur deci este propria lui secvență, deci se afișează 11 și 11. Tot așa până terminăm cu bitul 55 unde toți biții sunt legați deci secvența este chiar tot șirul deci startul este 11 și finalul 66.

Log in or sign up to be able to send submissions!