Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var n,m,k,q:int64;
- f,pred:array[0..100,0..101] of int64;
- a,ans:array[0..101] of int64;
- sum:int64;
- i,j,t:longint;
- function summa(left,right:int64):int64;
- var ans:int64;
- i,num:longint;
- begin
- ans:=0;
- for i:= left to right do
- begin
- num:=i-left+1;
- ans:=ans+num*a[i];
- end;
- summa:=ans;
- end;
- begin
- assign(input,'sms.in');
- reset(input);
- assign(output,'sms.out');
- rewrite(output);
- readln(n,k);
- for i:= 1 to n do
- read(a[i]);
- if n<=k then
- begin
- for i:= 1 to n do
- write(1,' ');
- for i:= n+1 to k do
- write('0 ');
- writeln;
- halt;
- end;
- for i:= 1 to 100 do
- for j:= 0 to 100 do
- f[i,j]:=1000000000000000000;
- for i:= 1 to 100 do
- f[0,i]:=0;
- for i:= 1 to n do
- for j:= 1 to k do
- for t:= 0 to i do
- begin
- sum:=f[t,j-1];
- if (i<>t) then sum:=sum+summa(t+1,i);
- if f[i,j]>sum then
- begin
- f[i,j]:=sum;
- pred[i,j]:=t;
- end;
- end;
- q:=n;
- for i:= k downto 1 do
- begin
- ans[i]:=q-pred[q,i];
- q:=pred[q,i];
- end;
- for i:= 1 to k do
- write(Ans[i],' ');
- writeln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement