結果
| 問題 |
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
すぎぱも