結果
問題 |
No.2953 Maximum Right Triangle
|
ユーザー |
|
提出日時 | 2025-08-29 18:19:25 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 40 ms / 2,000 ms |
コード長 | 695 bytes |
コンパイル時間 | 395 ms |
コンパイル使用メモリ | 82,156 KB |
実行使用メモリ | 54,156 KB |
最終ジャッジ日時 | 2025-08-29 18:19:27 |
合計ジャッジ時間 | 1,585 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
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))