Cod sursa(job #312379)

Utilizator belgun_adrianBelgun Dimitri Adrian belgun_adrian Data 5 mai 2009 21:06:02
Problema Deque Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.88 kb
// Arhiva educationala - Deque
// Pascal = shit, pierde prea mult timp la citire. 60pct
// Take 2: incercam varianta cu buffer 			   100pct (sper)

var
        n, k, i, p, u   : longint;
        a, d            : array[1..5000000] of longint;
        s               : int64;
        f               : text;
		buf : array[1..65000] of byte;

begin
assign  (f, 'deque.in');
reset   (f);
settextbuf (f, buf);
readln  (f, n, k);
for i := 1 to n do
	readln (f, a[i]);
close   (f);

s       := 0;
d[1]    := 1;
p       := 1;
u       := 1;
if (k=1) then s := a[1];
for i := 2 to n do
    begin
    while (p<=u) and (a[i] <= a[d[u]]) do
        u := u - 1;
    u := u + 1;
    d[u] := i;
    if (d[p]= i-k) then
        p := p + 1;
    if (i>=k) then
        s := s + a[d[p]];
    end;

assign  (f, 'deque.out');
rewrite (f);
writeln (f, s);
close   (f);

end.