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

📄 p1143.dpr

📁 高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程
💻 DPR
字号:
program p1143;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
        maxn    = 20;

var
        step    : Longint;
        max     : Longint;
        maxOne  : Longint;
        n       : Longint;
        m , p   : array [1..maxn] of Longint;

procedure init;
var     i       : Longint;
        a , b , y       : Longint;
begin
        max := 0;
        MaxOne := 1;
        for i := 1 to n do
                begin
                readln ( y , a , b );
                if y > max then max := y;
                p [i] := b - a;
                m [i] := y mod p [i];
                if P [i] > P [MaxOne] then MaxOne := i;
                end;
end;

function Gcd ( a , b : Longint ): Longint;
begin
        if a = 0 then gcd := b
                else gcd := gcd ( b mod a , a );
end;

procedure Work;
var     i       : Longint;
        j       : Longint;
        Flag    : Boolean;
        Mp      : Longint;
        D       : Longint;
begin
        writeln ( 'Case #' , step , ':' );
        Mp := 1;
        for i := 1 to n do
                begin
                if Mp > p [i] then D := gcd ( p [i] , Mp )
                        else D := gcd ( Mp , p [i] );
                Mp := Mp div D * p [i];
                end;

        i := m [MaxOne];
        while ( i < Mp ) and ( i < 10000 ) do 
                begin
                Flag := true;
                for j := 1 to n do
                        if i mod P [j] <> m [j] then
                                begin
                                Flag := false;
                                break;
                                end;
                if not Flag then
                        begin
                        inc ( i , P [MaxOne] );
                        continue;
                        end;

                j := i;
                while ( j < Max ) do inc ( j , Mp );

                if j < 10000 then writeln ( 'The actual year is ' , j , '.' )
                        else writeln ( 'Unknown bugs detected.' );
                exit;
                end;
        writeln ( 'Unknown bugs detected.' );
end;

begin
  { TODO -oUser -cConsole Main : Insert code here }
        assign ( input , 'p.in' );
        reset ( input );
        assign ( output , 'p.out' );
        rewrite ( output );
        
        step := 0;
        while true do
                begin
                readln ( n );
                if n = 0 then break;
                inc ( step );
                init;
                Work;
                writeln;
                end;
end.

⌨️ 快捷键说明

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