please help i am unable to figure out what is wrong in my code as it is not submitting on any platform and failing some test cases but working fine for some given cases.
//Book Allocation Problem
bool isPossible(int *arr, int n, int students, int currmin)
{
int st=1, sum=0;
for(int i=0; i<n; i++)
{
// if(arr[i]>currmin)
//return false;
if((sum+arr[i]) > currmin)
{
st++;
sum=arr[i];
if(st>students)
return false;
}
else
sum+=arr[i];
}
return true;
}
int findPages(int *arr, int n, int m)
{int sum=0;
if(n<m)
return -1;
sort(arr, arr+n);
for(int i=0; i<n; i++)
sum+=arr[i];
int start = arr[n-1];
int end = sum;
int ans=-1;
while(start<=end)
{int mid = start + (end-start)/2;
if( isPossible(arr, n, m, mid) )
{
ans = mid;
end = mid-1;
}
else
start = mid+1;
}
return ans;
}