Fişierul intrare/ieşire:cooler.in, cooler.outSursăad-hoc
AutorEugen NodeaAdăugată deCatalin.FrancuCatalin Francu Catalin.Francu
Timp execuţie pe test0.2 secLimită de memorie2048 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

Cooler (clasele 9-10)

Notă: Aceasta este o extensie a problemei Cool, date la OJI 2014, clasa a 9-a. Singura diferenţă este că numerele din şir pot avea valori până la 1.000.000.000 (în loc de 1.000).

Se consideră un şir A format din N elemente naturale nenule. Numim secvenţă de lungime K a şirului A orice succesiune de elemente consecutive din şir de forma Ai, Ai + 1, ..., Ai + K - 1.

O secvenţă o numim secvenţă cool dacă elementele care o compun sunt distincte şi pot fi rearanjate astfel încât să alcătuiască o secvenţă continuă de numere consecutive.

De exemplu, considerând şirul A = (3, 1, 6, 8, 4, 5, 6, 7, 4, 3, 4), atunci secvenţa (8, 4, 5, 6, 7) este o secvenţă cool deoarece conţine elemente distincte ce pot fi rearanjate astfel încât să alcătuiască şirul de numere consecutive 4, 5, 6, 7, 8, pe când secvenţele (4, 3, 4), (6, 7, 4, 3) nu sunt considerate secvenţe cool.

Cerinţă

Fiind dat un şir de N numere naturale nenule se cer următoarele:

  1. Pentru o valoare dată K să se verifice dacă secvenţa A1, A2, ..., AK este secvenţă cool. Dacă secvenţa este cool, atunci se va afişa cea mai mare valoare ce aparţine secvenţei. Dacă secvenţa nu este cool, atunci se va afişa numărul elementelor distincte din secvenţa $A1, A2, ..., AK$, adică numărul elementelor care apar o singură dată.
  2. Lungimea maximă a unei secvenţe cool şi numărul secvenţelor cool de lungime maximă.

Date de intrare

Fişierul de intrare cooler.in conţine pe prima linie un număr natural p. Pentru toate testele de intrare, numărul p poate avea doar valoarea 1 sau valoarea 2. Pe linia a doua se găsesc, despărţite printr-un spaţiu, două numere naturale N K. Pe următoarea linie se găsesc N numere întregi, separate prin câte un spaţiu, ce reprezintă elementele şirului.

Date de ieşire

Dacă valoarea lui p este 1, atunci se va rezolva numai punctul 1 din cerinţă. În acest caz, fişierul de ieşire cooler.out va conţine pe prima linie un număr natural, număr ce reprezintă conform cerinţei 1, maximul secvenţei A1, A2, ..., AK, dacă secvenţa este secvenţă cool, sau numărul elementelor distincte din secvenţă, dacă aceasta nu este secvenţă cool.

Dacă valoarea lui p este 2, se va rezolva numai punctul 2 din cerinţă. În acest caz, fişierul de ieşire cooler.out va avea două linii. Prima linie va conţine un număr natural nenul ce reprezintă lungimea maximă a unei secvenţe cool, iar următoarea linie un număr natural nenul ce reprezintă numărul de secvenţe cool care au lungimea maximă.

Restricţii şi precizări

  • 1 ≤ N ≤ 5.000
  • 2 ≤ K ≤ 1.000
  • 1 ≤ A[i] ≤ 1.000.000.000, $1 ≤ i ≤ N
  • Pentru 30% din teste N ≤ 1.000
  • Pentru rezolvarea primei cerinţe se acordă 20% din punctaj, iar pentru cerinţa a doua se acordă 80% din punctaj.

Exemplu

cooler.incooler.outexplicaţie
1
7 4
6 4 5 7 8 3 5
7
Atenţie! Pentru acest test se rezolvă doar cerinţa 1.
Secvenţa 6 4 5 7 este cool.
Valoarea maximă din secvenţă este 7.
1
7 6
6 4 5 7 5 4 3
2
Atenţie! Pentru acest test se rezolvă doar cerinţa 1.
Secvenţa 6 4 5 7 5 4 nu este secvenţă cool.
Numărul valorilor distincte din secvenţă este 2.
Valorile distincte sunt: 6, 7.
2
11 4
7 4 5 6 8 4 5 7 4 3 2
5
2
Atenţie! Pentru acest test se rezolvă doar cerinţa 2.
Cele două secvenţe cool de lungime maximă 5 sunt:
7 4 5 6 8
6 8 4 5 7
Trebuie sa te autentifici pentru a trimite solutii. Click aici