#include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int tab[n]; int suma=0; int dyn[n]; int dyn_2[n]; for(int i=0;i<n;i++){ int x; cin>>x; tab[i]=x; suma=suma+x; dyn[i]=suma; } if(suma<0){ cout<<-1; return 0; } for(int i=0;i<n;i++){ dyn_2[i]=suma-dyn[i]; } int koszt=n; int ost=0; for(int i=0;i<n;i++){ if(tab[i]<0 && tab[i]+dyn_2[i]>=0){ koszt=koszt-(i-ost); ost=i; //cout<<i; } //cout<<tab[i]<<" "<<ost; if(tab[i]>0 && ost==0){ koszt=koszt-i; ost=i; } else if(tab[i]>0 && ost!=0){ ost=i; } } cout<<koszt-1; }
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 42 | #include<bits/stdc++.h> using namespace std; int main(){ int n; cin>>n; int tab[n]; int suma=0; int dyn[n]; int dyn_2[n]; for(int i=0;i<n;i++){ int x; cin>>x; tab[i]=x; suma=suma+x; dyn[i]=suma; } if(suma<0){ cout<<-1; return 0; } for(int i=0;i<n;i++){ dyn_2[i]=suma-dyn[i]; } int koszt=n; int ost=0; for(int i=0;i<n;i++){ if(tab[i]<0 && tab[i]+dyn_2[i]>=0){ koszt=koszt-(i-ost); ost=i; //cout<<i; } //cout<<tab[i]<<" "<<ost; if(tab[i]>0 && ost==0){ koszt=koszt-i; ost=i; } else if(tab[i]>0 && ost!=0){ ost=i; } } cout<<koszt-1; } |