比賽:小奔的矩形solution
阿新 • • 發佈:2018-12-21
題目:
分析:
交叉相乘,然後除以最大公因數(為了減少爆常數的可能性std做了兩次,資料很大),得到的兩個數相加減二就是答案
程式碼:
var p,q,n,m,a,b,i:int64; begin readln(n,m); readln(a,b); p:=n; q:=m; if p<q then begin i:=p; p:=q; q:=i; end; while (p mod q)<>0 do if p>q then begin p:=p mod q; i:=p; p:=q; q:=i; end; n:=n div q; n:=n*b; m:=m div q; m:=m*a; p:=n; q:=m; if (n=0)or(m=0) then begin writeln(0); halt; end; if p<q then begin i:=p; p:=q; q:=i; end; while (p mod q)<>0 do if p>q then begin p:=p mod q; i:=p; p:=q; q:=i; end; n:=n div q; m:=m div q; writeln(n+m-2); end.