結果
問題 |
No.5018 Let's Make a Best-seller Book
|
ユーザー |
![]() |
提出日時 | 2023-10-01 14:53:35 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 147 ms / 400 ms |
コード長 | 834 bytes |
コンパイル時間 | 405 ms |
コンパイル使用メモリ | 87,108 KB |
実行使用メモリ | 92,556 KB |
スコア | 4,176 |
平均クエリ数 | 52.00 |
最終ジャッジ日時 | 2023-10-01 14:53:54 |
合計ジャッジ時間 | 17,442 ms |
ジャッジサーバーID (参考情報) |
judge11 / judge13 |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 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 // 3 * s for s in softmax(p)] pay = [int(p) // 500 for p in pay] money, s, p, r = do(pay) # 20 20 20 20 20 20 20 20 20 20