k型好数列怎么写??

一个长度大于等于2的数列,且其中任
意两个元素Ai和Aj(i≠j)的和Ai+Aj都能整除K,我们称其为K型好数列。
现在输入一个长度为N的数列A=[A1,A2,...AN]以及一个整数K,请你找出A的最长的K型好数列B,输出B的长度。
如果这样的子数组不存在,输出-1.
输入格式
第一行包含两个整数N和K.
第二行包含N个整数A1,A2,...AN.
1≤N≤100000
1≤Ai, K≤1000000000
输出格式
一个整数,表示答案。



#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n,k;
    int A[100000];
    int temp[100000],len=0,max_len=-1;
    scanf("%d %d",&n,&k);
    for(int i=0;i<n;++i)
    {
        scanf("%d",&A[i]);
    }
    
    for(int i=0;i<n-1;++i)
    {
        int j=i+1;
        for(j=i+1;j<n;++j)
        {
            if(k%(A[i]+A[j])==0)
            {
                temp[len++]=A[i];
                temp[len++]=A[j];
                break;
            }
        }
        
        for(int q=0;q<n;++q)
        {
            if(q==i || q==j)
                continue;
            
            int p=0;
            for(p=0;p<len;++p)
            {
                if(k%(temp[p]+A[q])!=0)
                    break;
            }
            if(p>=len)
            {
                temp[len++]=A[q];
            }
        }
        if(len>0 && len>max_len)
        {
            max_len = len;
        }
    }
    printf("%d",max_len);
    
    return 0;
}