Dažādie skaitļi

viegls
Latvijas Informātikas olimpiādes logo
Uzdevums no Latvijas 37. (2023./2024. m. g.) informātikas olimpiādes (LIO) novada kārtas.

Stāsts

Naturālu skaitļu virknē nepieciešams atrast garāko fragmentu (secīgu elementu virkni), kur visi skaitļi būtu atšķirīgi.

Piemēram, virknē 1,3,6,3,1,4,5,3,11, 3, 6, 3, 1, 4, 5, 3, 1 garākais fragments, kur visi skaitļi ir atšķirīgi, ir garumā 55 un sākas ar trešo elementu: 6,3,1,4,56, 3, 1, 4, 5.

Uzrakstiet datorprogrammu, kas dotai skaitļu virknei atrod garākā fragmenta, kurā visi skaitļi ir atšķirīgi, garumu un visas šādu fragmentu atrašanās vietas!

Ievaddati

Ievaddatu pirmajā rindā dots naturāls skaitlis – virknes elementu skaits NN (N2105)(N \leq 2 \cdot 10^5).

Nākamajā ievaddatu rindā doti NN naturāli skaitļi – virknes elementi. Zināms, ka neviens skaitlis virknē nav lielāks par 10910^9.

Starp katriem diviem blakus skaitļiem ievaddatos ir tukšumzīme.

Izvaddati

Izvaddatu pirmajā rindā jāizvada naturāls skaitlis GG – garākā fragmenta, kas satur dažādus skaitļus, garums.

Izvaddatu otrajā rindā jāizvada naturāls skaitlis HH – cik vietās skaitļu virknē var atrast dažādu skaitļu fragmentus garumā GG.

Izvaddatu trešajā rindā augošā secībā jāizvada HH naturāli skaitļi – to virknes elementu indeksi, kuros sāktie fragmenti garumā GG nesatur vienādus skaitļus. Virknes elementu indeksi sākas no 11.

Starp katriem diviem blakus skaitļiem jābūt tukšumzīmei.

Piemēri

Ievaddati

9 1 3 6 3 1 4 5 3 1 Kopēt kodu

Izvaddati

5 1 3 Kopēt kodu

Piezīme:

Atbilst piemēram uzdevuma tekstā

Ievaddati

7 3 3 3 15 15 7 15 Kopēt kodu

Izvaddati

2 3 3 5 6 Kopēt kodu

Piezīme:

Ir vairāki derīgi fragmenti garumā 2: [3,15], [15,7] un [7,15].

Izpildes resursu ierobežojumi

CPU izpildes laiks uz testu: 0.5 sekundes.
RAM atmiņas apjoms uz testu: 256 megabaiti.

Apakšuzdevumi un to vērtēšana

#Apraksts un ierobežojumiPunkti
1.

Uzdevuma tekstā dotie trīs testi

2
2.

N100N \leq 100, H=1H = 1

12
3.

N1000N \leq 1000, neviens no virknes elementiem nepārsniedz 55

15
4.

N1000N \leq 1000

20
5.

N>1000N > 1000, neviens no virknes elementiem nepārsniedz 10610^6

21
6.

Bez papildu ierobežojumiem

30
Apakšuzdevumu punktu summa = 100.

1. apakšuzdevuma ievaddati

14 1 3 5 3 2 3 7 9 3 8 6 4 9 3 Kopēt kodu
14 9 8 7 9 8 6 9 8 5 9 7 4 9 8 Kopēt kodu
20 11 65 12 86 50 17 65 86 58 35 83 85 10 50 17 65 86 58 35 83 Kopēt kodu