fork download
  1. program bilancio;
  2. const MAX=1000000;
  3. var N,K,j:longint;
  4. U,C :array[0..MAX] of longint;
  5.  
  6. procedure bianchetta(a, b: longint; var cifrainiziale, nuovacifra: array of longint);
  7. var i,nuovapos, lung : longint;
  8. begin
  9. nuovacifra[0] := cifrainiziale[0];
  10. nuovapos:=0;
  11. i:=1;
  12. lung:=a-b-1;
  13. while i<a do
  14. begin
  15. while ((nuovapos>=0) and (cifrainiziale[i]<nuovacifra[nuovapos]) and (b>0)) do
  16. begin
  17. nuovapos:=nuovapos-1;
  18. b:=b-1;
  19. end;
  20. if nuovapos<lung then
  21. begin
  22. nuovapos:=nuovapos+1;
  23. nuovacifra[nuovapos]:=cifrainiziale[i];
  24. end
  25. else
  26. b:=b-1;
  27. i:=i+1;
  28. end;
  29. end;
  30.  
  31. begin
  32.  
  33. readln(N, K);
  34. for j:=0 to N-1 do read(U[j]);
  35. readln;
  36. for j:=0 to N-K-1 do C[j]:=0;
  37. bianchetta(N, K, U, C);
  38. for j:=0 to N-K-1 do
  39. write(C[j], ' ');
  40. writeln;
  41. end.
  42.  
Success #stdin #stdout 0.01s 5284KB
stdin
10 5
1 3 2 0 2 1 8 5 3 6
stdout
0 1 5 3 6