Can Anyone help me in finding out what is wrong?

problem-link : https://www.codechef.com/problems/TFALL?tab=statement

# cook your dish here
for _ in range(int(input())):
    n=int(input())
    X = list(map(int,input().split()))
    P = list(map(int,input().split()))
    # flag 
    ans=0
    #total groups 
    grp=1
    # move right check for groups 
    for x in range(n-1):
        if X[x]+P[x]>=X[x+1]:continue
        else:grp+=1
    # Is it possible ??   
    if grp<=2:ans=1
    #reset 
    grp=1
    # move left check for groups
    for x in range(n-1):
        if X[x+1]+P[x+1]<=X[x]:continue
        else:grp+=1
    # Is it possible ?? 
    if grp<=2:ans=1
    
    #check for both direction
    left =  [False for x in range(n)]
    right = [False for x in range(n)]
    left[0]=True
    right[n-1]=True
    #Move left
    for x in range(1,n):
        if X[x]-P[x]<=X[x-1]:
            left[x]=True
            continue
    for x in range(n-2,-1,-1):
        if X[x]+P[x]>=X[x+1]:
            right[x]=True
            continue
    

            
    
    
    prefix=[0 for x in range(n)]
    suffix=[0 for x in range(n)]
    suffix[n-1]=1
    prefix[0]=1
    
    
    
    for x in range(1,n):
        if(left[x]): prefix[x]+=prefix[x-1]+1
        else:prefix[x]=prefix[x-1]
    for x in range(n-2,-1,-1):
        if(right[x]): suffix[x]+=suffix[x+1]+1
        else:suffix[x]=suffix[x+1]
    


    for x in range(n):
        if prefix[x]+suffix[x-prefix[x]]==n:
            ans=1
    
    
    
 
    # print(prefix)
    # print(suffix)
    if(ans):print("YES")
    else:print("NO")