結果

問題 No.550 夏休みの思い出(1)
ユーザー imulan
提出日時 2017-08-15 23:15:29
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 171 ms / 2,000 ms
コード長 732 bytes
コンパイル時間 172 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 75,716 KB
最終ジャッジ日時 2024-10-13 11:08:18
合計ジャッジ時間 7,020 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 55
権限があれば一括ダウンロードができます

ソースコード

diff #

import math

N = 1000000

def f(x,a,b,c):
    return x**3 + a*x**2 + b*x + c

def SQRT(n):
    l,r= 0,10**46
    while r-l>1:
        m = (l+r)//2
        if m*m <= n:
            l = m
        else:
            r = m
    return l

def main():
    A,B,C = map(int,input().split())

    p = -N+1
    while True:
        if f(p,A,B,C) == 0:
            break
        p += 1

    if p == 0:
        D = A**2 - 4*B
        sq = SQRT(D)
        q = (-A + sq) // 2
        r = (-A - sq) // 2
    else:
        D = (p*B+C)**2 + 4*C*p**3
        sq = SQRT(D)
        q = (p*B+C + sq) // (2*p**2)
        r = (p*B+C - sq) // (2*p**2)

    ans = [p,q,r]
    ans.sort()
    print(' '.join(map(str,ans)))

if __name__ == '__main__':
    main()
0