⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ac1216.pas

📁 某牛人写的acm.tongji.edu.cn上大部分ac的代码,仅供学习研究,请不要用来作弊
💻 PAS
字号:
program tju1216;
const
  maxn=15;
var
  start,step,life:array[1..maxn]of longint;
  n,m,i,j,t,x,y:longint;
function gcd(a,b:longint;var x,y:longint):longint;
  var
    t:longint;
  begin
    if b=0 then begin
      gcd:=a;x:=1;y:=0;
    end
    else begin
      gcd:=gcd(b,a mod b,x,y);
      t:=x;x:=y;y:=t-(a div b)*y;
    end;
  end;
function modular(a,b:longint):longint;
  begin
    a:=a mod m;if a<0 then inc(a,m);
    b:=b mod m;if b<0 then inc(b,m);
    if b*2>m then begin a:=m-a;b:=m-b;end;
    t:=gcd(m,a,y,x);
    if b mod t>0 then
      modular:=maxlongint
    else begin
      y:=m div t;
      t:=x*(b div t) mod y;
      if t<0 then modular:=t+y else modular:=t;
    end;
  end;
function collide:boolean;
  begin
    for i:=2 to n do
      for j:=1 to i-1 do begin
        t:=modular(step[i]-step[j],start[j]-start[i]);
        if (t<=life[i]) and (t<=life[j]) then begin collide:=true;exit;end;
      end;
    collide:=false;
  end;
begin
  repeat
    read(n);m:=0;
    for i:=1 to n do begin
      read(start[i],step[i],life[i]);
      if start[i]>m then m:=start[i];
    end;

    while collide do inc(m);
    writeln(m);
  until seekeof;
end.

⌨️ 快捷键说明

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