Can somebody point out the problem in this code
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
bool ispossible(ll arr[],ll n,ll k,ll t,ll mid)
{
ll i=0,painter=0,curr=0;
for(i=0;i<n;i++)
{
if(curr+arr[i]<mid)
{
curr+=arr[i];
}
else
{
painter++;
curr=arr[i];
}
if(painter>k)
{
return false;
}
//i++;
}
return true;
}
int main()
{
ll n,k,t,sum=0,maxs=0;
ll arr[n];int num;
cin>>n>>k>>t;
for(int i=0;i<n;i++)
{
cin>>arr[i];
sum+=arr[i];
}
for(ll i=0;i<n;i++)
{
if(arr[i]>maxs)
{
maxs=arr[i];
}
}
ll start=maxs;
ll end=sum;
ll mid,ans=0;
while(start<=end)
{
mid=(start+end)/2;
cout<<mid;
if(ispossible(arr,n,k,t,mid))
{
ans=mid;
end=mid-1;
//ans=min(mid,ans);
}
else
start=mid+1;
}
num=(ans)%10000003;
cout<<(num);//%10000003);
return 0;
}