Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- typedef long long int ll;
- int main()
- {
- int n;
- ll s;
- scanf("%d %lld",&n,&s);
- ll arr[n+1];
- ll qs[n+1];
- qs[0] = 0;
- for(int i = 1 ; i <= n ; i ++){
- scanf("%lld",&arr[i]);
- qs[i] = qs[i-1] + arr[i];
- }
- int mina = n+1;
- int L = 1 , R = n; //bsearch on size
- while(L <= R){
- int M = (L+R)/2;
- bool check = false;
- for(int l = 1 ; l <= n && !check ; l ++){
- int r = l + M - 1;
- if(r > n)break;
- ll sum = qs[r] - qs[l-1];
- if(sum >= s){
- check = true;
- break;
- }
- }
- if(check){
- if(M < mina)mina = M;
- R = M - 1;
- }else{
- L = M + 1;
- }
- }
- printf("%d",(mina == n + 1 ? -1 : mina));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement