whats the problem in my code
#include
using namespace std;
bool isPossible(int book[],int n ,int mid,int m){
int student =1;
int noOfPage=0;
for(int i=0;i<n;i++){
if(noOfPage+book[i]>mid){
student ++;
noOfPage=book[i];
if(student > m){
return false;
}
}
else {
noOfPage+=book[i];
}
}
return true;
}
int main() {
int t;
cin>>t;
for(int i=0;i<t;i++){
int m,n;
cin>>n>>m;
int book[n];
for(int j=0;j<n;j++){
cin>>book[j];
}
long long sum=0;
for(int j=0;j<n;j++){
sum+=book[j];
}
int s=book[n-1];
int e=sum;
int ans;
while (s>=e){
int mid=(s+e)/2;
if(isPossible(book,n,mid,m)){
ans =mid;
e=mid-1;
}
else {
s=mid+1;
}
}
cout<<ans;
}
return 0;
}