結果
| 問題 |
No.550 夏休みの思い出(1)
|
| コンテスト | |
| ユーザー |
titia
|
| 提出日時 | 2024-03-12 01:50:28 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,045 bytes |
| コンパイル時間 | 348 ms |
| コンパイル使用メモリ | 82,304 KB |
| 実行使用メモリ | 86,656 KB |
| 最終ジャッジ日時 | 2024-09-29 22:07:59 |
| 合計ジャッジ時間 | 6,950 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | -- * 3 |
| other | TLE * 1 -- * 54 |
ソースコード
# 割り切れる割り算、上の桁から。
def poly_div(X,Y):
ANS=[0]*(len(X)-len(Y)+1)
for i in range(len(X)-len(Y)+1):
if X[i]%Y[0]!=0:
return False
ANS[i]=X[i]//Y[0]
for j in range(len(Y)):
X[j+i]-=ANS[i]*Y[j]
return ANS
# 掛け算
def poly_mul(X,Y):
ANS=[0]*(len(X)+len(Y)-1)
for i in range(len(X)):
for j in range(len(Y)):
ANS[i+j]+=X[i]*Y[j]
return ANS
A,B,C=map(int,input().split())
for i in range(-10**7,10**7):
ANS=poly_div([1,A,B,C],[1,-i])
if ANS!=False:
a,b,c=ANS
if b*b-4*c<0:
continue
k=(-b+(b*b-4*c)**(1/2))/2
l=(-b-(b*b-4*c)**(1/2))/2
if abs(k-round(k))<0.00000000000001 and abs(l-round(l))<0.00000000000001:
L=[i,round(k),round(l)]
L.sort()
XX=poly_mul(poly_mul([1,-i],[1,-round(k)]),[1,-round(l)])
if XX[1:]==[A,B,C]:
print(*L)
exit()
titia