結果

問題 No.2624 Prediction by Average
ユーザー FromBooskaFromBooska
提出日時 2024-02-21 12:40:23
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 647 bytes
コンパイル時間 200 ms
コンパイル使用メモリ 81,780 KB
実行使用メモリ 68,876 KB
最終ジャッジ日時 2024-09-29 04:14:09
合計ジャッジ時間 1,130 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 44 ms
59,364 KB
testcase_01 WA -
testcase_02 WA -
testcase_03 AC 38 ms
52,408 KB
testcase_04 WA -
testcase_05 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

# 公式解説より、1000を超えれば常に可能なので1000までを調べる
# 切り捨てということは+1では大きすぎるので微妙に小さくする必要ある

from math import ceil, floor

T = int(input())
for t in range(T):
    N, S = map(float, input().split())
    N = int(N)
    S1000 = int(S*1000)

    ans = max(0, N-999)
    for n in range(1, min(1000, N+1)):
        low = max(0, ceil((S1000*n)/1000))
        high = min(100*n, floor(((S1000+1-0.000000000001)*n)/1000))
        # 微妙に小さくする
        if high >= low:
            ans += 1
        #print('n', n, 'low', low, 'high', high)
    print(ans)
0