Submission #2107429
Source Code Expand
# coding: utf-8 N = int(input()) P = list(map(int, input().split(' '))) sumP = sum(P) + 1 # dp[i][j]: i番目までの問題で合計点がj点になる組み合わせが存在するかのbool値 dp = [[0] * sumP for _ in range(N+1)] # 初期値 dp[0][0] = 1 for i in range(1, N+1): for j in range(sumP): if P[i-1] <= j: dp[i][j] = dp[i-1][j] | dp[i-1][j-P[i-1]] else: dp[i][j] = dp[i-1][j] print(sum(dp[N]))
Submission Info
Submission Time | |
---|---|
Task | A - コンテスト |
User | nkmrtty |
Language | Python (3.4.3) |
Score | 2 |
Code Size | 477 Byte |
Status | AC |
Exec Time | 299 ms |
Memory | 7412 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 | 19 ms | 3064 KB |
01 | AC | 83 ms | 4084 KB |
02 | AC | 299 ms | 7412 KB |
90 | AC | 18 ms | 3064 KB |
91 | AC | 17 ms | 3064 KB |