結果

問題 No.5018 Let's Make a Best-seller Book
ユーザー すぎぱも
提出日時 2023-10-01 14:40:58
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 954 bytes
コンパイル時間 387 ms
コンパイル使用メモリ 87,064 KB
実行使用メモリ 88,136 KB
スコア 0
平均クエリ数 2.00
最終ジャッジ日時 2023-10-01 14:41:14
合計ジャッジ時間 15,256 ms
ジャッジサーバーID
(参考情報)
judge15 / judge12
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other WA * 100
権限があれば一括ダウンロードができます

ソースコード

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 = [money * s for s in softmax(p)]
    if sum(pay) > money:
        pay = [money * s / sum(pay) for s in pay]
    pay = [int(p) for p in pay]
    money, s, p, r = do(pay)
0