Same code isnt working in the compiler- just giving the final value of array

#include
#include
using namespace std;

void subarray(int a[],int n){
int max=INT_MIN; int p,q;
int csum[1000]={0};
for (int i=1; i<n; i++){
csum[i]=csum[i-1]+a[i];
}

for (int i=0; i<n; i++){
    for(int j=i; j<n; j++){
        int sum=0;
        sum=csum[j]-csum[i-1];
        if (sum>max){
            sum=max;
        p=i, q=j;
    }
    }
    
    
}

for(int m=p; m<=q; m++){
    cout<<a[m]<<' ';
}

}

int main(){
int a[]={-1,2,5,6,8,-4};
int n= sizeof(a)/sizeof(int);
subarray(a,n);
return 0;
}