Submission #19430112
Source Code Expand
Copy
N = int(input()) # 1 始まりにするために先頭にダミーを入れる ps = [0] + list(map(int, input().split())) P = sum(ps) # exist[i][s]:iまでの問題で得点合計を s にできる exist = [] for i in range(N+1): exist.append([False]*(P+1)) # 初期条件 exist[0][0] = True # i が小さい順に exist の値を求めていく for i in range(1, N+1): for s in range(P+1): # 問題 i を解かない場合 if exist[i-1][s]: exist[i][s] = True # 問題 i を解く場合 if s >= ps[i] and exist[i-1][s-ps[i]]: exist[i][s] = True ans = 0 for s in range(P+1): if exist[N][s]: ans += 1 print(ans)
Submission Info
Submission Time | |
---|---|
Task | A - コンテスト |
User | betrue12 |
Language | Python (3.8.2) |
Score | 2 |
Code Size | 673 Byte |
Status | AC |
Exec Time | 216 ms |
Memory | 13044 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 2 / 2 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 00, 01, 02, 90, 91 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00 | AC | 32 ms | 8864 KB |
01 | AC | 74 ms | 9880 KB |
02 | AC | 216 ms | 13044 KB |
90 | AC | 28 ms | 8924 KB |
91 | AC | 17 ms | 8864 KB |