結果
問題 | No.550 夏休みの思い出(1) |
ユーザー |
![]() |
提出日時 | 2024-03-12 01:51:05 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 629 ms / 2,000 ms |
コード長 | 1,049 bytes |
コンパイル時間 | 234 ms |
コンパイル使用メモリ | 82,816 KB |
実行使用メモリ | 77,440 KB |
最終ジャッジ日時 | 2024-09-29 22:08:24 |
合計ジャッジ時間 | 24,180 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 55 |
ソースコード
# 割り切れる割り算、上の桁から。 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**6-5,10**6+5): 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()