subset.pas

来自「Magio牛的usaco源代码」· PAS 代码 · 共 38 行

PAS
38
字号
{
ID:maigoak1
PROG:subset
}

program subset;
const
  maxn=39;
var
  fin,fout:text;
  way:array[1..maxn*(maxn+1) div 4]of longint;
  n,goal,i,j:integer;
procedure out(ans:longint);
  begin
    assign(fout,'subset.out');
    rewrite(fout);
    writeln(fout,ans);
    close(fout);
    halt;
  end;
begin
  assign(fin,'subset.in');
  reset(fin);
  readln(fin,n);
  close(fin);

  if odd(n*(n+1) div 2) then out(0);

  goal:=n*(n+1) div 4;
  fillchar(way,sizeof(way),0);
  way[n]:=1;
  for i:=1 to n-1 do
    for j:=goal-i downto n do
      inc(way[j+i],way[j]);

  out(way[goal]);
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?