记录编号 2140 评测结果 AAWWWWWWWW
题目名称 石子合并 最终得分 20
用户昵称 Gravatar书剑飘零 是否通过 未通过
代码语言 Pascal 运行时间 10.000 s
提交时间 2008-09-13 20:10:31 内存使用 0.00 MiB
显示代码纯文本
program spk_szgb; 
  var 
    f:array[0..200,0..200] of integer; 
    k,i,j,n,min,p,t,pp:integer; 
    a:array[1..200] of integer; 
    f1,f2:text;
begin 
  assign(f1,'shizi.in');
  assign(f2,'shizi.out');
  reset(f1);rewrite(f2);
  
  readln(f1,n); 
  for i:=1 to n do read(f1,a[i]); 
  fillchar(f,sizeof(f),0); 
  for j:=2 to n do 
    for i:=1 to n do 
      begin 
        t:=0; 
        min:=3000; 
        for p:=i to i+j-1 do 
          begin 
            if p>n then t:=t+a[p mod n] else t:=t+a[p]; 
          end; 
        for k:=1 to j-1 do 
          begin 
            if i+k>n then pp:=i+k-n else pp:=i+k; 
            if min>f[i,k]+f[pp,j-k] then min:=f[i,k]+f[pp,j-k]; 
          end; 
        f[i,j]:=min+t; 
      end; 
  min:=f[1,n]; 
  for i:=1 to n do if f[i,n]<min then min:=f[i,n]; 
  writeln(f2,min);
  close(f1);
  close(f2); 
end.