Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- n, w, p = map( int, input().split() )
- weights = [ ]
- for i in range( n ): weights += [ int( input() ) ]
- # weights = list( map( int, input().split() ) )
- dp = [ [ 0 ] * n for _ in range( w + 1 ) ]
- counter = [ [ 0 ] * n for _ in range( w + 1 ) ]
- dp[ 0 ][ 0 ] = 1
- res = 0
- for i in range( w + 1 ):
- for j in range( n ):
- if j:
- dp[ i ][ j ] = (dp[ i - weights[ j ] ][ j - 1 ] if i - weights[ j ] > -1 else 0) + dp[ i ][ j - 1 ]
- elif i:
- dp[ i ][ j ] = i == weights[ j ]
- res = (res + dp[ i ][ -1 ]) % p
- print( res )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement