結果
問題 |
No.5018 Let's Make a Best-seller Book
|
ユーザー |
![]() |
提出日時 | 2023-10-01 15:15:19 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 176 ms / 400 ms |
コード長 | 1,292 bytes |
コンパイル時間 | 334 ms |
コンパイル使用メモリ | 87,420 KB |
実行使用メモリ | 93,508 KB |
スコア | 11,942 |
平均クエリ数 | 52.00 |
最終ジャッジ日時 | 2023-10-01 15:15:38 |
合計ジャッジ時間 | 17,280 ms |
ジャッジサーバーID (参考情報) |
judge12 / judge13 |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 100 |
ソースコード
T,N,Money=map(int,input().split()) SELLS=[1]*N S = [0] * N P = [0] * N R = [0] * N # 序盤は少しだけ売って人気度を上げ、 # 人気度が上がったらたくさん売りさばくのが最適そう。 for tests in range(T): ALL=Money//500 #ALL=min(ALL,50*(tests+1)) ANS=[0]*N for i in range(N): OK=1 NG=ALL+1 while OK+1<NG: mid=(OK+NG)//2 if (mid**(0.5))*(1.05**P[i])*0.75>=mid*0.3: OK=mid else: NG=mid ANS[i]=max(0,OK-R[i]) SUM=sum(ANS) if SUM>ALL: for i in range(N): ANS[i]=ALL*ANS[i]//SUM if Money>=8000000: print(2,5,flush=True) elif Money>=4000000: print(2,4,flush=True) elif tests>=5 and Money>=2000000: print(2,3,flush=True) elif tests>=5 and Money>=1000000: print(2,2,flush=True) elif tests>=5 and Money>=500000: print(2,1,flush=True) else: print("1",*ANS,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())) for i in range(N): SELLS[i]+=S[i]