結果

問題 No.702 中央値を求めよ LIMITED
ユーザー tjaketjake
提出日時 2018-06-15 23:07:09
言語 PyPy3
(7.3.15)
結果
MLE  
実行時間 -
コード長 650 bytes
コンパイル時間 139 ms
コンパイル使用メモリ 82,404 KB
実行使用メモリ 64,440 KB
最終ジャッジ日時 2024-06-30 15:25:51
合計ジャッジ時間 73,619 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 MLE -
testcase_01 MLE -
testcase_02 MLE -
testcase_03 MLE -
testcase_04 MLE -
testcase_05 MLE -
testcase_06 MLE -
testcase_07 MLE -
testcase_08 MLE -
testcase_09 MLE -
testcase_10 MLE -
testcase_11 MLE -
testcase_12 MLE -
testcase_13 MLE -
testcase_14 MLE -
testcase_15 MLE -
testcase_16 MLE -
testcase_17 MLE -
testcase_18 MLE -
testcase_19 MLE -
testcase_20 MLE -
testcase_21 MLE -
testcase_22 MLE -
testcase_23 MLE -
testcase_24 MLE -
testcase_25 MLE -
testcase_26 MLE -
権限があれば一括ダウンロードができます

ソースコード

diff #

s = int(input())
A = 10000001
MOD = 2**32
def gen():
    x = s; y = 1; z = 2; w = 3
    for i in range(A):
        t = (x ^ (x << 11)) % MOD
        x, y, z, w = y, z, w, (w ^ (w >> 19)) ^ (t ^ (t >> 8))
        yield w

B = A//2
left = 2146000000; right = 2149000000
while left+1 < right:
    x = s; y = 1; z = 2; w = 3
    mid = (left + right) // 2
    cnt = 0
    for i in range(A):
        t = (x^(x << 11)) % MOD
        x = y; y = z; z = w; w = (w ^ (w >> 19)) ^ (t ^ (t >> 8))
        if mid < w:
            cnt += 1
            if cnt > B:
                break
    if cnt > B:
        left = mid
    else:
        right = mid
print(left+1)
0