Painters problem

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.

hello @gulatigarvita08
a) use long long
b) take modulo of you answer . (check output format of question)