I am not getting what is wrong in the code

#include<bits/stdc++.h>
using namespace std;
bool isPossible(int arr[], int n, int m, int curr_min)
{
int studentsRequired = 1;
int curr_sum = 0;

for (int i = 0; i < n; i++) 
{ 
     
    if (arr[i] > curr_min) 
        return false; 

     
    if (curr_sum + arr[i] > curr_min) 
    { 
        
        studentsRequired++; 

         
        curr_sum = arr[i]; 

         
        if (studentsRequired > m) 
            return false; 
    } 

    
    else
        curr_sum += arr[i]; 
} 
return true; 

}

int findPages(int arr[], int n, int m)
{
int sum = 0;

if (n < m) 
    return -1; 


for (int i = 0; i < n; i++) 
    sum += arr[i]; 


int start = arr[n-1], end = sum; 
int result = INT_MAX; 

 
while (start <= end) 
{ 
     
    int mid = (start + end) / 2; 
    if (isPossible(arr, n, m, mid)) 
    { 
        
        result = min(result, mid); 


        
        end = mid - 1; 
    } 

    else

        start = mid + 1; 
} 

 
return result; 

}

int main()
{

int arr[1000]; 
int n;
int m;
cin>>n>>m;
for(int i=0;i<n;i++)
{
	cin>>arr[i];
}

cout<< findPages(arr, n, m)<<endl; 
return 0; 

}

@shdanish1508
there is problem in main() function. The way you are taking input is wrong. The first input is t(no. of testcases) you have not taken it into consideration.
write int tc;
cin>>tc;
while(tc–){
//whole logic inside
}