What wrong in my code test case 3 failed

#include
using namespace std;
int main() {
int n;
cin>>n;
for(int t=0;t<n;t++){
int p;
cin>>p;
int a[p];
int c;
cin>>c;
int min=0;
int sum=0;
for(int j=0;j<p;j++){
cin>>a[j];
if(min<a[j]){
min=a[j];
}
sum=sum+a[j];
}
int l=min;
int r=sum;
int large=min;
int mid;
int w;
while(l<=r){
mid=(l+r)/2;
w=0;
int d=1;
for(int i=0;i<p;i++){
w=w+a[i];
if(w>mid){
w=a[i];

d=d+1;

}
}
if(d>c){
l=mid+1;

}
else{
r=mid-1;
large=mid;
}

}

cout<<large<<"\n";
}
return 0;
}

@dineshjani hey dinesh use data modifiers as long long int .