結果
問題 | No.2648 [Cherry 6th Tune D] 一次元の馬 |
ユーザー | StanMarsh |
提出日時 | 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 |
ソースコード
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))