program cestaZkopce; const MaxK = 20; var N, k, a, b, i, j, pred, akt: integer; stoupani: array [0..MaxK] of integer; begin a := 1; b := 1; stoupani[0] := 1; j := 1; read(N, k); read(pred); for i:=2 to N do begin read(akt); if pred < akt then begin {máme stoupání} if j <= k then {ale zatím málo} stoupani[j] := i else begin {teď už dost} if i-1 - stoupani[j mod (k+1)] > b - a then begin {zbytek po dělení používám proto, aby pole stoupani bylo zatočené do kruhu} a := stoupani[j mod (k+1)]; {zatím nejdelší podposloupnost} b := i - 1; end; stoupani[j mod (k+1)] := i; {uložíme do fronty} end; inc(j); end; pred := akt; end; if N - stoupani[j mod (k+1)] > b-a then begin {ještě zkontrolujeme poslední podposloupnost} if j <= k then a := 1 {vezmeme celou posloupnost} else a := stoupani[j mod (k+1)]; {nebo jen od prvního stoupání z fronty} b := N; end; write('a = ', a, ' b = ', b); end.