hiho week 212 register

Ended

Participants:168

Verdict:Accepted
Score:100 / 100
Submitted:2018-07-21 23:28:26

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
typedef long long ll;
const int maxn=100005;
int a[100]; 
ll dp[maxn];
int main(){
    int n,sum;
    scanf("%d%d",&n,&sum);
    for(int i=0;i<n;i++) scanf("%d",&a[i]);
    
    int gap=-sum; 
    for(int i=0;i<n;i++) gap+=a[i];
    
    if(gap<0) printf("0");
    else{
        dp[0]=1;
        for(int i=0;i<n;i++) for(int j=gap;j>=2*a[i];j--) dp[j]=(dp[j]+dp[j-2*a[i]])%1000000007; 
        printf("%lld",dp[gap]);
    }                                          
    return 0; 
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX