結果

問題 No.550 夏休みの思い出(1)
ユーザー Tatsuno
提出日時 2017-07-28 23:10:41
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
WA  
実行時間 -
コード長 1,069 bytes
コンパイル時間 107 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 11,136 KB
最終ジャッジ日時 2024-10-10 04:44:46
合計ジャッジ時間 3,170 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 WA * 1
other AC * 5 WA * 50
権限があれば一括ダウンロードができます

ソースコード

diff #

def solve():
    b,c,d = map(int, input().split())
    a = 1
    p = (3*a*c - (b**2)) / (3*(a**2))
    q = (27*(a**2)*d + 2*(b**3) - 9*a*b*c) / (27 * (a**3))
    u = ((-q/2) + (((q/2)**2 + (p/3)**3)**(1/2)))**(1/3)
    v = ((-q/2) - (((q/2)**2 + (p/3)**3)**(1/2)))**(1/3)
    w1 = (-1 + complex(3**0.5, 1)) / 2
    w2 = (-1 - complex(3**0.5, 1)) / 2
    x1 = u+v-(b/3*a)
    x2 = w1*u + w2*v -(b / 3 / a)
    x3 = w2*u + w1*v -(b / 3 / a)
    ans = list(sorted([round(x1.real), round(x2.real), round(x3.real)]))
    for i in range(-1, 2):
        y1 = ans[0] + i
        if ((y1**3) + b*(y1**2) + c*(y1) + d) != 0:
             continue
        for j in range(-1, 2):
            y2 = ans[1] + j
            if y2 <= y1: continue
            if ((y2**3) + b*(y2**2) + c*(y2) + d) != 0:
                continue
            for k in range(-1, 2):
                y3 = ans[2] + k
                if y3 <= y2: continue
                if ((y3**3) + b*(y3**2) + c*(y3) + d) != 0:
                    continue
                print(y1, y2, y3)
                return
solve()
0