How to remove SIGSEGV error from this .is it caused by multiple logical operators?

#include< algorithm >
#include < iostream >
#include< vector >
using namespace std;
#include<stdio.h>

int main()
{
int T,X,c[100],d[100],K;
cin>>T;
for(X=0;X<T;X++)
{
int i,j,k,N[100],P[100];
c[X]=0;
d[X]=0;

    cin>>N[X];
    if(7<=N[X]<=100)
    {
    
    for( i=0;i<N[X];++i)
    { 
        cin>>P[i];
    }
    
    for(i=0;i<N[X];++i)
    {
        
      if(P[i]<=750&&P[i]>=350)
       {
        if(i<5)
         {
             
             
                if((P[i]<P[i+1])&&(P[i]<P[i+2])&&(P[i]<P[i+3])&&(P[i]<P[i+4])&&(P[i]<P[i+5]))
                {
                    d[X]++;
                }
                
            
         }
        
               if(i>=5)
          {
            
            
                if((P[i]<P[i-1])&&(P[i]<P[i-2])&&(P[i]<P[i-3])&&(P[i]<P[i-4])&&(P[i]<P[i-5]))

               {
                 d[X]++;
                }
            
            
        
           }
       }
        
    }
    
    }
    
 }
 
 for(K=0;K<T;++K)
 {
     cout<<d[K]<<"4\n";
 }


return 0;

}