結果

問題 No.5018 Let's Make a Best-seller Book
ユーザー すぎぱも
提出日時 2023-10-01 14:34:43
言語 PyPy3
(7.3.15)
結果
TLE  
実行時間 -
コード長 933 bytes
コンパイル時間 311 ms
コンパイル使用メモリ 86,840 KB
実行使用メモリ 4,380 KB
スコア 0
最終ジャッジ日時 2023-10-01 14:34:47
合計ジャッジ時間 3,701 ms
ジャッジサーバーID
(参考情報)
judge14 / judge15
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other TLE * 1 -- * 99
権限があれば一括ダウンロードができます

ソースコード

diff #

T, N, money = map(int, input().split())
s, p, r = [0] * N, [0] * N, [0] * N


def softmax(x):
    import math
    # 入力リストから最大値を取得
    max_x = max(x)

    # ソフトマックス関数の計算
    exp_x = [e - max_x for e in x]
    exp_x = [math.exp(e) for e in exp_x]
    softmax_values = [e / sum(exp_x) for e in exp_x]

    return softmax_values


def do(arg):
    if type(arg) == list:
        print(1, *arg, flush=True)
    else:
        print(2, arg, flush=True)
    money = int(input())
    if money == -1:
        exit()
    s = list(map(int, input().split()))
    p = list(map(int, input().split()))
    r = list(map(int, input().split()))
    return money, s, p, r


money, s, p, r = do([money // (500 * N)] * N)

for week in range(T - 1):
    pay = [p * s for p, s in zip(p, softmax(money))]
    if sum(pay) > money:
        pay = [p * money / sum(pay) for p in pay]
    money, s, p, r = do(pay)
0