➤ Problem Link : 279B. Books
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
bool func(ll v,ll cum[],int n,ll t)
{
ll val;
for(int i=0;i+v<=n;i++)
{
if(i==0)
val=cum[i+v-1];
else
val=cum[i+v-1]-cum[i-1];
if(val<=t)
return true;
}
return false;
}
int main()
{
int n;
ll t;
cin>>n>>t;
int arr[n];
ll cum[n];
for(int i=0;i<n;i++)
{
cin>>arr[i];
if(i!=0)
cum[i]=cum[i-1]+arr[i];
else
cum[i]=arr[i];
}
ll low=0,high=n,mid;
while(low<high)
{
mid=low+(high-low+1)/2;
if(func(mid,cum,n,t))
low=mid;
else
high=mid-1;
}
cout<<high;
}
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!
