here is my code:
#include
#include
#include
using namespace std;
bool isPossible(int n , int k , int t , int arr[],int mid)
{
int time=0,painter=1;
for(int i=0;i<n;i++)
{
time+=(arr[i]*t);
if(time>mid)
{
++painter;
if(painter>k)
return false;
time=0;
--i;
}
}
return true;
}
int min_time(int n , int k ,int t , int arr[])
{
int s=0,e,min_time1=INT_MAX;
for(int i=0;i<n;i++)
{
s=max(s,arr[i]);
e+=arr[i];
}
s*=t;
e*=t;
while(s<=e)
{
int mid=(s+e)/2;
if(isPossible(n,k,t,arr,mid))
{
min_time1=min(min_time1,mid);
e=mid-1;
}
else
s=mid+1;
}
return min_time1;
}
int main()
{
int n,k,t;
cin>>n>>k>>t;
int arr[n];
for(int i=0;i<n;i++)
cin>>arr[i];
cout<<min_time(n,k,t,arr);
}
its not passing all the test cases . please help me.