結果
問題 | No.2953 Maximum Right Triangle |
ユーザー |
![]() |
提出日時 | 2024-11-08 23:22:18 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 32 ms / 2,000 ms |
コード長 | 626 bytes |
コンパイル時間 | 346 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 10,624 KB |
最終ジャッジ日時 | 2024-11-08 23:22:32 |
合計ジャッジ時間 | 1,115 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 6 |
ソースコード
import sysinput = sys.stdin.readlinefrom math import gcdT=int(input())for tests in range(T):D,x,y=map(int,input().split())GCD=gcd(x,y)if x==0:print(y*D)continueif y==0:print(x*D)continuex2=x//GCDy2=y//GCD# (z,w) = (x,y) + k(-y2,x2)# 0<=x-ky2<=D# 0<=y+kx2<=D# k<=x/y2,k<=(D-y)/x2,k>=(x-D)/y2,k>=-y/x2MAX=min(x//y2,(D-y)//x2)MIN=max((x-D+y2-1)//y2,(-y+x2-1)//x2)if MIN<=MAX:A1=abs(x*(y+MIN*x2)-y*(x-MIN*y2))A2=abs(x*(y+MAX*x2)-y*(x-MAX*y2))print(max(A1,A2))else:print(0)