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