結果

問題 No.5018 Let's Make a Best-seller Book
ユーザー square1001
提出日時 2023-10-01 21:18:53
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 51 ms / 400 ms
コード長 798 bytes
コンパイル時間 189 ms
コンパイル使用メモリ 10,896 KB
実行使用メモリ 24,408 KB
スコア 54,856
平均クエリ数 52.00
最終ジャッジ日時 2023-10-01 21:19:04
合計ジャッジ時間 10,900 ms
ジャッジサーバーID
(参考情報)
judge15 / judge12
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 100
権限があれば一括ダウンロードができます

ソースコード

diff #

T, N, X = map(int, input().split())
X //= 500
S = [ 0 ] * N
P = [ 0 ] * N
R = [ 0 ] * N
for turn in range(T):
	if (T - turn) % 5 == 0 and X >= 1200:
		level = (3 if X >= 4800 else 2 if X >= 2400 else 1)
		print(2, level, flush=True)
	elif turn >= 30:
		L = [X // N + (i < X % N) for i in range(N)]
		print(1, *L, flush=True)
	else:
		rem = X
		req = [ 0 ] * N
		for i in range(N):
			target = max(int(1.5625 * 1.1025 ** P[i]), int(1.0 / (0.140625 * 1.1025 ** P[i]) + 1.0))
			req[i] = (max(target - R[i], 0), i)
		req.sort()
		L = [ 0 ] * N
		for i in range(N):
			if rem >= req[i][0]:
				rem -= req[i][0]
				L[req[i][1]] = req[i][0]
		print(1, *L, flush=True)
	X = int(input()) // 500
	S = list(map(int, input().split()))
	P = list(map(int, input().split()))
	R = list(map(int, input().split()))
0