| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
您的代码过于冗长了,贴一个我 AC 了的吧In Reply To:哪位路过的帮忙看看,why!!!WA Posted by:_smiling at 2008-10-31 16:19:09 var a , b , c , k : int64 ; function exgcd (a , b : int64 ; var x , y : int64) : int64 ; var t : int64 ; begin if (b = 0) then begin exgcd := a ; x := 1 ; y := 0 ; end else begin exgcd := exgcd (b , a mod b , x , y) ; t := x ; x := y ; y := t - (a div b) * y ; end ; end ; procedure solve ; var u , v , x , y , d , g , tmp : int64 ; begin u := c ; v := int64 (1) shl k ; d := b - a ; g := exgcd (u , v , x , y) ; if (d mod g <> 0) then writeln ('FOREVER') else begin x := x * d div g ; tmp := v div g ; x := x mod tmp ; if (x < 0) then inc (x , tmp) ; writeln (x) ; end ; end ; begin // assign (input , 't2115.in') ; reset (input) ; // assign (output , 't2115.out') ; rewrite (output) ; while (not seekeof) do begin readln (a , b , c , k) ; if (a = 0) and (b = 0) and (c = 0) and (k = 0) then break ; solve ; end ; // close (input) ; close (output) ; end . Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator