結果

問題 No.2970 三次関数の絶対値
コンテスト
ユーザー LyricalMaestro
提出日時 2026-03-19 00:40:20
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
WA  
実行時間 -
コード長 1,260 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 311 ms
コンパイル使用メモリ 85,120 KB
実行使用メモリ 52,608 KB
最終ジャッジ日時 2026-03-19 00:40:24
合計ジャッジ時間 3,397 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 47 WA * 3
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

## https://yukicoder.me/problems/no/2970

import math

def main():
    C0, C1, C2, C3 = map(int, input().split())
    L, R = map(int, input().split())

    def func(x):
        return C3 * x **3 + C2 * x ** 2 + C1 * x + C0
    
    if C3 != 0:
        array = []
        array.append(func(L))
        array.append(func(R))

        D = C2 ** 2 - 3 * C3 * C1
        if D > 0:
            beta = (- C2 + math.sqrt(D)) / (3 * C3)
            if L <= beta <= R:
                array.append(func(beta))
            alpha = (- C2 + math.sqrt(D)) / (3 * C3)
            if L <= alpha <= R:
                array.append(func(alpha))
        elif D == 0:
            beta = - C2 / (3 * C3)
            if L <= beta <= R:
                array.append(func(beta))
    elif C2 != 0:
        array = []
        array.append(func(L))
        array.append(func(R))

        beta = -C1 / (2 * C2)
        if L <= beta <= R:
            array.append(func(beta))
    else:
        array = []
        array.append(func(L))
        array.append(func(R))
        
    array.sort()
    if array[0] > 0:
        print(array[0])
    elif array[-1] < 0:
        print(abs(array[-1]))
    else:
        print(0.0)
            




            



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