結果

問題 No.5003 物理好きクリッカー
ユーザー morumotto
提出日時 2018-12-10 00:28:58
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 84 ms / 10,000 ms
コード長 2,098 bytes
コンパイル時間 62 ms
実行使用メモリ 22,756 KB
スコア 849,772,669
平均クエリ数 10000.00
最終ジャッジ日時 2021-07-19 09:17:39
合計ジャッジ時間 4,849 ms
ジャッジサーバーID
(参考情報)
judge14 / judge15
純コード判定しない問題か言語
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 32
権限があれば一括ダウンロードができます

ソースコード

diff #

import math
n = int(input())
s = input()
fac_power = {"enhclick":1,
             "hand":1,
             "lily":10,
             "factory":120,
             "casino":2000,
             "grimoire":25000}
buy_count = {"enhclick":0,
             "hand":0,
             "lily":0,
             "factory":0,
             "casino":0,
             "grimoire":0}
buy_price = {"buy hand":150,
             "buy lily":2000,
             "buy factory":30000,
             "buy casino":600000,
             "buy grimoire":10000000}
rei_price = {"enhclick":15,
             "reinforce hand":1500,
             "reinforce lily":20000,
             "reinforce factory":300000,
             "reinforce casino":6000000,
             "reinforce grimoire":100000000}
fac_names = {"hand", "lily", "factory", "casino", "grimoire"}

turn = 0
cookie_count = 200
fever = 0
sale = False
while turn < n:
  #------------- player_action -------------
  act = None
  price = 0
  for k, v in buy_price.items():
    if sale:
      if cookie_count >= v * 0.9 and v * 0.9  > price:
        act, price = k, v * 0.9
    else:
      if cookie_count >= v and v > price:
        act, price = k, v

  sale = False
  
  for k, v in rei_price.items():
    if cookie_count >= v and v  > price:
      act, price = k, v

  if act == None:
    print("click")
    cookie_count += fac_power["enhclick"]
  else:
    if act in buy_price:
      print(act)
      buy_price[act] = math.ceil(buy_price[act] * 1.2)
      buy_count[act.split()[-1]] += 1
      cookie_count -= math.ceil(price)
    elif act in rei_price:
      print(act)
      rei_price[act] *= 10
      fac_power[act.split()[-1]] *= 2
      cookie_count -= price

  #------------- facility_action -----------
  add = sum([fac_power[k] * buy_count[k] for k in fac_names])
  if fever:
    add *= 7
    fever -= 1
  cookie_count += add

  #------------- special_action ------------
  special_act = s[turn]
  if s == "B":
    cookie_count += math.ceil(cookie_count / 100)
  elif s == "F":
    fever = 20
  elif s == "S":
    sale = True

  #------------- turn++ ------------------
  turn += 1
0