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
33
34
35
36
37
38
39
40
41
#include <bits/stdc++.h>
using namespace std;
vector <int> t;
int n;
int czy(int a){
    int suma=t[0];
    int tmp=0;
    for (int i=1; i<n;i++){
        //cout << (bool)(a & (1<<(i-1)));
        if (a & (1<<(i-1))){
            tmp++;
            suma+=t[i];
        }else{
            if (suma<0){
                return n+1;
            }
            suma=t[i];
        }
    }
    if (suma>=0){
        return tmp;
    }else{
        return n+1;
    }
}
int main(){
cin >> n;
t.resize(n);
for (int i=0; i<n;i++){
    cin>>t[i];
}
int wynik=n+1;
for (int i=0;i<(1<<(n-1));i++){
    wynik=min(czy(i),wynik);
    //cout <<" "<<wynik <<endl;
}
if (wynik==n+1){
    wynik=-1;
}
cout << wynik<<endl;
}