#include #include using namespace std; const int N=200010; int a[N]; int n,k; int F[N][20],lb[N]; void Initlog() { lb[0]=-1; for(int i=1;i<=N;i++) lb[i]=lb[i-1]+(i&(i-1)?0:1); } void ST(int n) { for(int i=1;i<=n;i++) F[i][0]=a[i]; for(int j=1;j<=lb[n];j++) for(int i=1;i<=n-(1<k; } void solve(int n) { ST(n); int l=1,r=n,ans; while(l<=r)//二分找m { int m=(l+r)>>1; if(ok(m)) r=m-1,ans=m; else l=m+1; } printf("%d\n",ans); // while(l=0||k>=0) { int sum=0; for(int i=1;i<=n;i++) { scanf("%d",&a[i]); sum+=a[i]; } if(sum<=k) printf("-1\n"); else solve(n); } return 0; }