結果
問題 | No.2953 Maximum Right Triangle |
ユーザー | ArcAki |
提出日時 | 2024-11-09 02:03:51 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 65 ms / 2,000 ms |
コード長 | 861 bytes |
コンパイル時間 | 200 ms |
コンパイル使用メモリ | 82,560 KB |
実行使用メモリ | 65,280 KB |
最終ジャッジ日時 | 2024-11-09 02:03:52 |
合計ジャッジ時間 | 1,335 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 58 ms
61,696 KB |
testcase_01 | AC | 58 ms
61,568 KB |
testcase_02 | AC | 65 ms
65,280 KB |
testcase_03 | AC | 57 ms
61,568 KB |
testcase_04 | AC | 63 ms
63,488 KB |
testcase_05 | AC | 59 ms
61,952 KB |
testcase_06 | AC | 58 ms
61,952 KB |
ソースコード
from sys import stdin from random import randint from collections import deque, defaultdict as dd from copy import deepcopy input = stdin.readline MOD = 998244353 INF = 1 << 60 xor = randint(100, INF) def extended_gcd(a, b): if b == 0: return a, 1, 0 else: g, x, y = extended_gcd(b, a % b) return g, y, x - (a // b) * y def mod_inverse(a, m): _, x, _ = extended_gcd(a, m) return (x % m + m) % m def main(): t = int(input()) for _ in range(t): solve() def solve(): d, x, y = map(int, input().split()) if not x: print(y*d) return elif not y: print(x*d) return a = x*x+y*y gcd = extended_gcd(x, y)[0] base = max(min(x//(y//gcd), (d-y)//(x//gcd)), min(y//(x//gcd), (d-x)//(y//gcd))) print(a*base//gcd) if __name__ == "__main__": main()