| 比赛 | 
    10101115 | 
    评测结果 | 
    AAATTTTTTT | 
    | 题目名称 | 
    技能树 | 
    最终得分 | 
    30 | 
    | 用户昵称 | 
    1102 | 
    运行时间 | 
    0.000 s  | 
    | 代码语言 | 
    Pascal | 
    内存使用 | 
    0.00 MiB  | 
    | 提交时间 | 
    2010-11-15 10:46:28 | 
显示代码纯文本
program xxxx;
var f:array[1..50,1..50] of boolean;
    a:array[1..50,1..50] of longint;
    i,j,n,m,w,x:longint;
procedure work(k:longint);
var p,q:longint;
begin
  if k>m then
    begin
      if w>x then
        x:=w;
    end
  else
    begin
      for p:=1 to n do
        for q:=1 to n-p+1 do
          if (f[p,q]) then
            if (p=1)or((p<>1)and(f[p-1,q]<>true)and(f[p-1,q+1]<>true))then
              begin
                w:=w+a[p,q];
                f[p,q]:=false;
                work(k+1);
                w:=w-a[p,q];
                f[p,q]:=true;
              end;
    end;
end;
begin
  assign(input,'skill.in');
  reset(input);
  assign(output,'skill.out');
  rewrite(output);
  read(n,m);
  for i:=1 to n do
    for j:=1 to n-i+1 do
      begin
        read(a[i,j]);
        f[i,j]:=true;
      end;
  w:=0;
  x:=0;
  work(1);
  write(x);
  close(input);
  close(output);
end.