結果

問題 No.2648 [Cherry 6th Tune D] 一次元の馬
ユーザー StanMarshStanMarsh
提出日時 2024-02-23 21:36:04
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 453 ms / 2,000 ms
コード長 1,199 bytes
コンパイル時間 121 ms
コンパイル使用メモリ 82,644 KB
実行使用メモリ 258,756 KB
最終ジャッジ日時 2024-09-29 05:47:48
合計ジャッジ時間 11,676 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 36
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys

inf = float("inf")

input = lambda: sys.stdin.readline().rstrip("\r\n")

print = lambda *args, end="\n", sep=" ": sys.stdout.write(
    sep.join(map(str, args)) + end
)


def II():
    return int(input())


def MII(b=0):
    return map(lambda x: int(x) - b, input().split())


def LII(b=0):
    return list(MII(b))


def find_maximum(check, l, r=None, precision=10**-9):

    if r is None:
        r = 1
        while check(r):
            l = r
            r *= 10

    res = l
    while r - l >= precision:
        mid = [(l + r) / 2, (l + r) // 2][precision == 0]
        if check(mid):
            res = mid
            l = mid + (precision == 0)
        else:
            r = mid - (precision == 0)
    return res


def find_minimun(check, l, r=None, precision=10**-9):
    def chk(x):
        return not check(x)

    res = find_maximum(chk, l, r, precision)
    return res + 1 if precision == 0 else res


def is_sorted(a):
    return all(a[i] < a[i + 1] for i in range(len(a) - 1))


for _ in range(II()):
    n, a = II(), LII()

    def check(m):
        b = [ai + i * m for i, ai in enumerate(a, 1)]
        return is_sorted(b)

    print(find_minimun(check, -1, precision=0))
0