nuggets.pas

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

PAS
73
字号
{
ID:maigoak1
PROG:nuggets
}

program nuggets;
const
  maxn=10;
  max=2000000001;
  size=258;
var
  fin,fout:text;
  content:array[1..maxn]of integer;
  ok:array[0..size-1]of boolean;
  n,i,j:integer;
  p:longint;
  flag:boolean;
procedure check;
  begin
    if ok[(p-1) mod size] then exit;
    for i:=0 to content[1]-1 do
      if not ok[(p+i) mod size] then exit;
    writeln(fout,p-1);
    close(fout);
    halt;
  end;
begin
  fillchar(ok,sizeof(ok),0);
  assign(fin,'nuggets.in');
  reset(fin);
  readln(fin,n);
  for i:=1 to n do begin
    readln(fin,content[i]);
    ok[content[i]]:=true;
  end;
  close(fin);

  for i:=1 to n do
    for j:=i+1 to n do
      if content[i]>content[j] then begin
        p:=content[i];content[i]:=content[j];content[j]:=p;
      end;

  assign(fout,'nuggets.out');
  rewrite(fout);

  for i:=2 to content[1] do begin
    flag:=true;
    for j:=1 to n do
      if content[j] mod i>0 then begin
        flag:=false;
        break;
      end;
    if flag then begin
      writeln(fout,0);
      close(fout);
      halt;
    end;
  end;

  for p:=1 to max do begin
    if ok[p mod size] then begin
      for i:=1 to n do
        ok[(p+content[i]) mod size]:=true;
      check;
    end;
    ok[(p-1) mod size]:=false;
  end;

  writeln(fout,0);
  close(fout);
end.

⌨️ 快捷键说明

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