1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <bits/stdc++.h>

using namespace std;
int n,suma;
int dp[25000010];
int tymek[25000010];
int a[5010];
int radzio;
const int modulo = 1000000007;
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> n;
    for(int i=0; i<n; i++){
        cin >> a[i];
    }
    sort(a,a+n);
    dp[0]=1;
    for(int i=0; i<n; i++){
        suma+=a[i];
        for(int j=2*a[i]-1; j<=suma; j++){
            tymek[j]=dp[j-a[i]];
            radzio=(radzio+tymek[j])%modulo;
        }
        for(int j=2*a[i]-1; j<=suma; j++){
            dp[j]=(tymek[j]+dp[j])%modulo;
        }
    }
    cout << radzio;
    return 0;
}