?? ac1216.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 + -