!! Why all test cases have fail,could you please tell me .
#include
#include
using namespace std;
bool ispossible(int n,int m,int arr[],int mid)
{
int stud = 1;
int page = 0;
for(int i=0;i<n;i++)
{
if(page + arr[i]>mid)
{
stud++;
page = arr[i];
if(stud>m)
{
return false;
}
}
else
{
page +=arr[i];
}
}
return true;
}
int book_allocation(int n,int m,int arr[])
{
if(n<m)
{
return -1;
}
int sum=0;
for(int i=0;i<n;i++)
{
sum +=arr[i];
}
int s=arr[n-1];
int e =sum;
int ans = INT_MAX;
while(s<=e)
{
int mid = (s+e)/2;
if(ispossible(n,m,arr,mid))
{
ans =min(ans,mid);
e = mid-1;
}
else
{
s = mid+1;
}
}
return ans;
}
int main()
{
int t;
int n,m;
int arr[1000];
cin>>t;
for(int i=0;i<t;i++)
{
cin>>n>>m;
for(int j=0;j<n;j++)
{
cin>>arr[j];
}
}
cout<< book_allocation(n,m,arr);
}