spin.pas

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

PAS
64
字号
{
ID:maigoak1
PROG:spin
}

program spin;
const
  wheels=5;
var
  fin,fout:text;
  wheel,bak:array[1..wheels,0..359]of boolean;
    {True if there's a wedge}
  omega:array[1..wheels]of byte;
  n,x,y,time,i,j,k:integer;
procedure check;
  var
    i,j:integer;
    ok:boolean;
  begin
    for i:=0 to 359 do begin
      ok:=true;
      for j:=1 to 5 do
        ok:=ok and wheel[j,i];
      if ok then begin
        writeln(fout,time);
        close(fout);
        halt;
      end;
    end;
  end;
procedure rotate;
  var
    i,j:integer;
  begin
    bak:=wheel;
    for i:=1 to 5 do
      for j:=0 to 359 do
        wheel[i,j]:=bak[i,(j+360-omega[i]) mod 360];
  end;
begin
  fillchar(wheel,sizeof(wheel),0);
  assign(fin,'spin.in');
  reset(fin);
  for i:=1 to wheels do begin
    read(fin,omega[i],n);
    for j:=1 to n do begin
      read(fin,x,y);
      for k:=x to x+y do
        wheel[i,k mod 360]:=true;
    end;
  end;
  close(fin);

  assign(fout,'spin.out');
  rewrite(fout);
  for time:=0 to 359 do begin
    check;
    rotate;
  end;

  writeln(fout,'none');
  close(fout);
end.

⌨️ 快捷键说明

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