AMSSEQ - Dãy số
Tác giả: ladpro98
Ngôn ngữ: Pascal
program amsseq2;
uses math;
const fi='';
var f,a:array[0..10001] of longint;
maxnum: array[0..10001] of longint;
res,i,n,k,j:longint;
inp:text;
procedure input;
var i:longint;
begin
assign(inp,fi);
reset(inp);
readln(inp,n,k);
for i:=1 to n do read(inp,a[i]);
close(inp);
end;
procedure init;
var i,j,tmp:longint;
begin
tmp:=low(longint);
for i:=0 to k-1 do
begin
tmp:=max(tmp,a[i]);
maxnum[i+1]:=tmp;
end;
for i:=k+1 to n+1 do
begin
tmp:=low(longint);
for j:=i-1 downto i-k do
begin
tmp:=max(tmp,a[j]);
end;
maxnum[i]:=tmp;
end;
end;
begin
input;
init;
f[0]:=0;
f[1]:=a[1];
res:=0;
for i:=2 to k do
begin
f[i]:=low(longint);
for j:=i-1 downto 0 do
f[i]:=max(f[j]+a[i],f[i]);
res:=max(res,f[i]);
end;
for i:=k+1 to n+1 do
begin
f[i]:=low(longint);
for j:=i-1 downto i-k do
f[i]:=max(f[j]+a[i],f[i]);
res:=max(res,f[i]);
end;
write(res);
end.