結果
問題 |
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 |
ソースコード
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)