My code is passing 4 out of 6 test cases. the question is pointer problem from algo++.
Please help.
#include
#include
using namespace std;
#define ll long long int
bool isposs(ll len[],ll n,ll k,ll mid)
{
ll painter=0;
ll done=0;
for(ll i=0;i<n;i++)
{
if(done+len[i]>mid)
{
painter++;
done=len[i];
if(painter>k)
return false;
}
else
done+=len[i];
}
return true;
}
int main() {
ll n,k,t;
cin>>n>>k>>t;
ll len[n],sum=0;
for(ll i=0;i<n;i++)
{
cin>>len[i];
sum+=len[i];
}
sort(len,len+n);
ll s=len[n-1];
ll e=sum;
ll mid,ans=s;
while(s<=e)
{
mid=(s+e)/2;
if(isposs(len,n,k,mid))
{
ans=mid;
e=mid-1;
}
else
s=mid+1;
}
cout<<(t*ans)% 10000003;
return 0;
}