Submission #46169169
Source Code Expand
Copy
from collections import defaultdictdef ope_number_digit(N,K,P):# 整数Nの左からK桁目をPに書き換えるN -= get_number_digit(N,K) * pow(10,K-1)N += P * pow(10,K-1)return Ndef get_number_digit(N,K):# 整数Nの左からK桁目を得るreturn N // pow(10,K-1) - N // pow(10,K) * 10N,K,P = map(int, input().split())C_list = list()A_list = list()for i in range(N):line = [int(e) for e in input().split()]C = line[0]A = line[1:]
from collections import defaultdict def ope_number_digit(N,K,P): # 整数Nの左からK桁目をPに書き換える N -= get_number_digit(N,K) * pow(10,K-1) N += P * pow(10,K-1) return N def get_number_digit(N,K): # 整数Nの左からK桁目を得る return N // pow(10,K-1) - N // pow(10,K) * 10 N,K,P = map(int, input().split()) C_list = list() A_list = list() for i in range(N): line = [int(e) for e in input().split()] C = line[0] A = line[1:] C_list.append(C) A_list.append(A[::-1]) dp = defaultdict(int) dp[0] = 0 valid_keys = {0} for i in range(N): C = C_list[i] A = A_list[i] new_keys = set() new_val = defaultdict(int) # 複数回使用とならないように更新値の一時置きするdict for key in valid_keys: # 当該開発案を実行したときのパラメータパターンを算出 parameter = key for j in range(K): digit_j = get_number_digit(parameter,K-j) if digit_j + A[j] >= P: parameter = ope_number_digit(parameter,K-j,P) else: parameter = ope_number_digit(parameter,K-j,digit_j + A[j]) # 新規のパラメータパターンなら探索候補に追加するために確保 if parameter not in valid_keys: new_keys.add(parameter) # 当該パラメータパターンの最安コストを更新 if new_val[parameter] == 0: new_val[parameter] = C + dp[key] else: new_val[parameter] = min(C + dp[key],new_val[parameter]) new_val[0] = 0 # 確保した新規のパラメータパターンを探索候補に追加 valid_keys |= new_keys # 更新値を反映する for k,v in new_val.items(): if dp[k] == 0: dp[k] = v else: dp[k] = min(dp[k],v) key = 0 for i in range(K): key *= 10 key += P if dp[key] == 0: print(-1) else: print(dp[key])
Submission Info
Submission Time | |
---|---|
Task | E - Product Development |
User | tonomotohide |
Language | Python (PyPy 3.10-v7.3.12) |
Score | 475 |
Code Size | 2083 Byte |
Status | AC |
Exec Time | 242 ms |
Memory | 85496 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 475 / 475 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | example_00.txt, example_01.txt |
All | example_00.txt, example_01.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
example_00.txt | AC | 67 ms | 76956 KB |
example_01.txt | AC | 68 ms | 77024 KB |
test_00.txt | AC | 76 ms | 82080 KB |
test_01.txt | AC | 88 ms | 83712 KB |
test_02.txt | AC | 107 ms | 83648 KB |
test_03.txt | AC | 71 ms | 77156 KB |
test_04.txt | AC | 67 ms | 76852 KB |
test_05.txt | AC | 69 ms | 76584 KB |
test_06.txt | AC | 69 ms | 77004 KB |
test_07.txt | AC | 126 ms | 84628 KB |
test_08.txt | AC | 93 ms | 83900 KB |
test_09.txt | AC | 94 ms | 83952 KB |
test_10.txt | AC | 131 ms | 84440 KB |
test_11.txt | AC | 205 ms | 85056 KB |
test_12.txt | AC | 174 ms | 84220 KB |
test_13.txt | AC | 162 ms | 84396 KB |
test_14.txt | AC | 72 ms | 80876 KB |
test_15.txt | AC | 70 ms | 76804 KB |
test_16.txt | AC | 70 ms | 77012 KB |
test_17.txt | AC | 67 ms | 76852 KB |
test_18.txt | AC | 69 ms | 76980 KB |
test_19.txt | AC | 88 ms | 83620 KB |
test_20.txt | AC | 91 ms | 83248 KB |
test_21.txt | AC | 68 ms | 76872 KB |
test_22.txt | AC | 67 ms | 76720 KB |
test_23.txt | AC | 103 ms | 83604 KB |
test_24.txt | AC | 80 ms | 83120 KB |
test_25.txt | AC | 86 ms | 83880 KB |
test_26.txt | AC | 101 ms | 83880 KB |
test_27.txt | AC | 95 ms | 83752 KB |
test_28.txt | AC | 97 ms | 84044 KB |
test_29.txt | AC | 103 ms | 83756 KB |
test_30.txt | AC | 118 ms | 83568 KB |
test_31.txt | AC | 115 ms | 83284 KB |
test_32.txt | AC | 110 ms | 83776 KB |
test_33.txt | AC | 115 ms | 83320 KB |
test_34.txt | AC | 105 ms | 83692 KB |
test_35.txt | AC | 112 ms | 83652 KB |
test_36.txt | AC | 112 ms | 84036 KB |
test_37.txt | AC | 230 ms | 85008 KB |
test_38.txt | AC | 241 ms | 85336 KB |
test_39.txt | AC | 230 ms | 84848 KB |
test_40.txt | AC | 231 ms | 85064 KB |
test_41.txt | AC | 242 ms | 84420 KB |
test_42.txt | AC | 242 ms | 85372 KB |
test_43.txt | AC | 218 ms | 85496 KB |