记录编号 21013 评测结果 AAAAAAAAAA
题目名称 奇怪的监狱 最终得分 100
用户昵称 Gravatarwo shi 刘畅 是否通过 通过
代码语言 Pascal 运行时间 0.020 s
提交时间 2010-11-02 15:47:04 内存使用 3.94 MiB
显示代码纯文本
var
  p,q,i,l,k,j:longint;
  a:array[0..1000]of longint;
  f:Array[0..1000,0..1000]of longint;

    procedure sort(l,r: longint);
      var
         i,j,x,y: longint;
      begin
         i:=l;
         j:=r;
         x:=a[(l+r) div 2];
         repeat
           while a[i]<x do
            inc(i);
           while x<a[j] do
            dec(j);
           if not(i>j) then
             begin
                y:=a[i];
                a[i]:=a[j];
                a[j]:=y;
                inc(i);
                j:=j-1;
             end;
         until i>j;
         if l<j then
           sort(l,j);
         if i<r then
           sort(i,r);
      end;

procedure init;
var
  i:longint;
begin
  readln(p,q);
  for i:=1 to q do read(a[i]);
  a[q+1]:=p+1;
end;

begin
  assign(input,'prison.in'); reset(input);
  assign(output,'prison.out'); rewrite(output);
  init;
  sort(1,q);
  for l:=0 to q-1 do
   for i:=1 to q-l do
   begin
     j:=i+l;
     f[i,j]:=maxlongint;
     for k:=i to j do
      if f[i,k-1]+f[k+1,j]<f[i,j] then
      f[i,j]:=f[i,k-1]+f[k+1,j];
     f[i,j]:=f[i,j]+a[j+1]-a[i-1]-2;
   end;
  writeln(f[1,q]);
  close(input);
  close(output);
end.