結果
| 問題 |
No.2953 Maximum Right Triangle
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2024-11-08 23:20:04 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 619 bytes |
| コンパイル時間 | 559 ms |
| コンパイル使用メモリ | 12,416 KB |
| 実行使用メモリ | 10,624 KB |
| 最終ジャッジ日時 | 2024-11-08 23:20:09 |
| 合計ジャッジ時間 | 1,354 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 4 WA * 2 |
ソースコード
import sys
input = sys.stdin.readline
from math import gcd
T=int(input())
for tests in range(T):
D,x,y=map(int,input().split())
GCD=gcd(x,y)
if x==0:
print(y*D)
continue
if y==0:
print(x*D)
continue
x2=x//GCD
y2=y//GCD
# (z,w) = (x,y) + k(-y,x)
# 0<=x-ky<=D
# 0<=y+kx<=D
# k<=x/y,k<=(D-y)/x,k>=(x-D)/y,k>=-y/x
MAX=min(x2//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)
titia