zerosum.pas

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

PAS
57
字号
{
ID:maigoak1
PROG:zerosum
}

program zerosum;
const
  c1:array[1..3]of string=('','+','-');
  c2:array[1..3]of string=(' ','+','-');
var
  fin,fout:text;
  s:array[1..8]of byte;
  n:integer;
function value(f:string):longint;
  var
    v:longint;
    p,q:word;
  begin
    val(f,v,p);
    if p=0 then
      value:=v
    else begin
      val(copy(f,1,p-1),v,q);
      value:=v+value(copy(f,p,length(f)-p+1));
    end;
  end;
procedure search(l:byte);
  var
    i,j:byte;
    f1,f2:string;
  begin
    for i:=1 to 3 do begin
      s[l]:=i;
      if l<n-1 then
        search(l+1)
      else begin
        f1:='1';f2:='1';
        for j:=1 to n-1 do begin
          f1:=f1+c1[s[j]]+chr(49+j);
          f2:=f2+c2[s[j]]+chr(49+j);
        end;
        if value(f1)=0 then writeln(fout,f2);
      end;
    end;
  end;
begin
  assign(fin,'zerosum.in');
  reset(fin);
  readln(fin,n);
  close(fin);

  assign(fout,'zerosum.out');
  rewrite(fout);
  search(1);
  close(fout);
end.

⌨️ 快捷键说明

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