結果
問題 |
No.2953 Maximum Right Triangle
|
ユーザー |
![]() |
提出日時 | 2025-02-16 17:50:13 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 32 ms / 2,000 ms |
コード長 | 695 bytes |
コンパイル時間 | 652 ms |
コンパイル使用メモリ | 81,796 KB |
実行使用メモリ | 54,308 KB |
最終ジャッジ日時 | 2025-02-16 17:50:15 |
合計ジャッジ時間 | 1,281 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 6 |
ソースコード
import math T = int(input()) def solve(d, ax, ay): if ay == 0: return ax * d if ax == 0: return ay * d g = math.gcd(ax, ay) stepx = ax//g stepy = ay//g # 左方向に進む(-stepy, stepx) cnt1 = min(ax//stepy, (d - ay)//stepx) # (ax, ay) から cnt1 歩進む bx = ax - stepy*cnt1 by = ay + stepx*cnt1 candi1 = abs(ax * by - ay * bx) # 右方向に進む(stepy, -stepx) cnt2 = min((d - ax)//stepy, ay//stepx) bx = ax + stepy*cnt2 by = ay - stepx*cnt2 candi2 = abs(ax * by - ay * bx) return max(candi1, candi2) for i in range(T): d, ax, ay = map(int, input().split()) print(solve(d, ax, ay))