結果

問題 No.5018 Let's Make a Best-seller Book
ユーザー すぎぱも
提出日時 2023-10-01 15:04:22
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 134 ms / 400 ms
コード長 931 bytes
コンパイル時間 437 ms
コンパイル使用メモリ 86,984 KB
実行使用メモリ 92,612 KB
スコア 3,205
平均クエリ数 52.00
最終ジャッジ日時 2023-10-01 15:04:40
合計ジャッジ時間 17,524 ms
ジャッジサーバーID
(参考情報)
judge12 / judge15
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 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):
    pmax = max(p)
    pay = [pmax - p for p in p]
    pay = [money * s for s in softmax(pay)]
    pay = [max(0, int(p) // 500 - 1 - r) for p, r in zip(pay, r)]
    money, s, p, r = do(pay)


# 20 20 20 20 20 20 20 20 20 20
# 1 2 3 4 5 6 7 8 9 10
0