Https://hack.codingblocks.com/app/contests/421/p/1263

https://hack.codingblocks.com/app/contests/421/p/1263

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll bsearch(ll *a,ll s,ll e,ll n,ll stu){
ll sum=0,c=1,ans;

while(s<e){

	ll mid=(s+e)/2;
	
      sum=0;c=1;
	for(int i=0;i<n;i++){
		sum+=a[i];
		if(sum<=mid) continue;
		           
		else {
			c++;
			sum=a[i];}
			// cout<<c<<" ";
	}

	if(c<=stu){
		ans=mid;
		// cout<<mid<<" ";
		e=mid-1;}
	else{
		s=mid+1;
	}	
}

return ans;

}

int main() {
ll t,books,stu,s[1000];
ll cums=0;
cin>>t;
while(t–){
cin>>books>>stu;
for(int i=0;i<books;i++){
cin>>s[i];
cums+=s[i];
}

     cout<<bsearch(s,s[0],cums,books,stu)<<endl;

     
}
return 0;

}

what is problem with logic it is giving wrong answer.