結果
| 問題 | No.2953 Maximum Right Triangle |
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2024-11-08 23:17:03 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 762 bytes |
| コンパイル時間 | 611 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 10,624 KB |
| 最終ジャッジ日時 | 2024-11-08 23:17:11 |
| 合計ジャッジ時間 | 914 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 2 WA * 4 |
ソースコード
import sys
input = sys.stdin.readline
def calc(k):
x2=x-k*y
y2=y+k*x
if 0<=x2<=D and 0<=y2<=D:
return abs(x*y2-y*x2)
return 0
T=int(input())
for tests in range(T):
D,x,y=map(int,input().split())
if x==0:
print(y*D)
continue
if y==0:
print(x*D)
continue
# (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
ANS=0
for i in range(x//y-3,x//y+3):
ANS=max(ANS,calc(i))
for i in range((D-y)//x-3,(D-y)//x+3):
ANS=max(ANS,calc(i))
for i in range((x-D+y-1)//y-3,(x-D+y-1)//y+3):
ANS=max(ANS,calc(i))
for i in range((-y+x-1)//x-3,(-y+x-1)//x+3):
ANS=max(ANS,calc(i))
print(ANS)
titia