1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream> 
#include <vector> 
#include <algorithm>
using namespace std;
long long wynik = 0;
long long mod = 1000000007;

void calc (long long suma, long long i, vector <int> &A){
	if(suma<A[i]-1) return;
	wynik++;
	wynik = wynik%mod;
	if(i==A.size()-1) return;
	calc(suma,i+1, A);
	calc(suma+A[i],i+1,A);
}
int main(){
	cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(false);
	int n; cin >> n;
	vector<int> A(n);
	for(int i=0;i<n;i++)cin >> A[i];
	sort(A.begin(),A.end());
	calc(0,0, A);
	cout << wynik << '\n';
}