Submission #6208405


Source Code Expand

import numpy as np
N,M,Y,Z = map(int,input().split())
CP = [input().split() for _ in range(M)]
color, pts = zip(*CP)
pts = [int(x) for x in pts]
c_to_i = {x:i for i,x in enumerate(color)}
B = input()

# (最後に積んだブロック、コンプリートしたsubset) -> score
INF = 10**15
dp = np.full((M, 1<<M), -INF, dtype = np.int64)

subsets = np.arange(1<<M)

def update_dp(c):
  i = c_to_i[c]
  p = pts[i]
  bit = 1 << i
  contain = np.bitwise_and(bit,subsets).astype(np.bool)
  # 同色
  x = dp[i][contain] + max(0, p + Y)
  # 他の色から来る
  other = np.full(1<<M, -INF, dtype=np.int64)
  for j in range(M):
    if i == j:
      continue
    np.maximum(other, dp[j], out = other)
  y = np.maximum(other[contain], other[np.bitwise_xor(subsets[contain],bit)]) + p
  dp[i][contain] = np.maximum(dp[i][contain], np.maximum(x,y))
  # はじめて
  dp[i][bit] = np.maximum(dp[i][bit], p)

for b in B:
  update_dp(b)

dp = dp.max(axis = 0)
dp[-1] += Z # perfect
answer = dp.max()
# ひとつも積まない
if answer < 0:
  answer = 0
print(answer)

Submission Info

Submission Time
Task C - 積み上げパズル
User maspy
Language Python (3.4.3)
Score 100
Code Size 1105 Byte
Status AC
Exec Time 172 ms
Memory 12532 KiB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 54
Set Name Test Cases
All 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 01_rand_00.txt, 01_rand_01.txt, 01_rand_02.txt, 01_rand_03.txt, 01_rand_04.txt, 01_rand_05.txt, 01_rand_06.txt, 01_rand_07.txt, 01_rand_08.txt, 01_rand_09.txt, 01_rand_10.txt, 01_rand_11.txt, 01_rand_12.txt, 01_rand_13.txt, 01_rand_14.txt, 01_rand_15.txt, 01_rand_16.txt, 01_rand_17.txt, 01_rand_18.txt, 01_rand_19.txt, 02_connect_00.txt, 02_connect_01.txt, 02_connect_02.txt, 02_connect_03.txt, 02_connect_04.txt, 02_connect_05.txt, 02_connect_06.txt, 02_connect_07.txt, 02_connect_08.txt, 02_connect_09.txt, 02_connect_10.txt, 02_connect_11.txt, 02_connect_12.txt, 02_connect_13.txt, 02_connect_14.txt, 02_connect_15.txt, 02_connect_16.txt, 02_connect_17.txt, 02_connect_18.txt, 02_connect_19.txt, 02_connect_20.txt, 02_connect_21.txt, 02_connect_22.txt, 02_connect_23.txt, 02_connect_24.txt, 02_connect_25.txt, 02_connect_26.txt, 02_connect_27.txt, 02_connect_28.txt, 02_connect_29.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 149 ms 12452 KiB
00_sample_02.txt AC 149 ms 12464 KiB
00_sample_03.txt AC 152 ms 12464 KiB
00_sample_04.txt AC 148 ms 12464 KiB
01_rand_00.txt AC 153 ms 12464 KiB
01_rand_01.txt AC 154 ms 12452 KiB
01_rand_02.txt AC 159 ms 12452 KiB
01_rand_03.txt AC 149 ms 12464 KiB
01_rand_04.txt AC 149 ms 12464 KiB
01_rand_05.txt AC 149 ms 12464 KiB
01_rand_06.txt AC 152 ms 12452 KiB
01_rand_07.txt AC 150 ms 12452 KiB
01_rand_08.txt AC 154 ms 12464 KiB
01_rand_09.txt AC 149 ms 12532 KiB
01_rand_10.txt AC 150 ms 12464 KiB
01_rand_11.txt AC 150 ms 12452 KiB
01_rand_12.txt AC 150 ms 12452 KiB
01_rand_13.txt AC 151 ms 12464 KiB
01_rand_14.txt AC 163 ms 12464 KiB
01_rand_15.txt AC 150 ms 12464 KiB
01_rand_16.txt AC 150 ms 12464 KiB
01_rand_17.txt AC 151 ms 12452 KiB
01_rand_18.txt AC 151 ms 12452 KiB
01_rand_19.txt AC 150 ms 12520 KiB
02_connect_00.txt AC 153 ms 12452 KiB
02_connect_01.txt AC 152 ms 12452 KiB
02_connect_02.txt AC 151 ms 12464 KiB
02_connect_03.txt AC 151 ms 12464 KiB
02_connect_04.txt AC 150 ms 12464 KiB
02_connect_05.txt AC 153 ms 12452 KiB
02_connect_06.txt AC 159 ms 12464 KiB
02_connect_07.txt AC 149 ms 12464 KiB
02_connect_08.txt AC 160 ms 12464 KiB
02_connect_09.txt AC 151 ms 12464 KiB
02_connect_10.txt AC 150 ms 12464 KiB
02_connect_11.txt AC 153 ms 12452 KiB
02_connect_12.txt AC 156 ms 12464 KiB
02_connect_13.txt AC 154 ms 12420 KiB
02_connect_14.txt AC 149 ms 12420 KiB
02_connect_15.txt AC 150 ms 12464 KiB
02_connect_16.txt AC 163 ms 12464 KiB
02_connect_17.txt AC 149 ms 12452 KiB
02_connect_18.txt AC 151 ms 12464 KiB
02_connect_19.txt AC 156 ms 12532 KiB
02_connect_20.txt AC 149 ms 12464 KiB
02_connect_21.txt AC 158 ms 12408 KiB
02_connect_22.txt AC 149 ms 12452 KiB
02_connect_23.txt AC 150 ms 12420 KiB
02_connect_24.txt AC 154 ms 12464 KiB
02_connect_25.txt AC 149 ms 12452 KiB
02_connect_26.txt AC 151 ms 12408 KiB
02_connect_27.txt AC 154 ms 12464 KiB
02_connect_28.txt AC 172 ms 12464 KiB
02_connect_29.txt AC 150 ms 12532 KiB