1083 是否存在相等的差

#define MAX 10050
int S[MAX];
int main()
{
    //freopen("D:\\文件夹\\Desktop\\use.txt","r",stdin);
    int n;scanf("%d",&n);getchar();
    memset(S,0,sizeof(S));
    int num = 0;//个数统计
    int i;
    for(i = 1;i <= n;++i){
        int t;scanf("%d",&t);
        if(S[abs(i-t)] == 0) num++;
        S[abs(i-t)] ++; 
    }

    i = 0;int j = MAX -1; //从S[j]开始
    while(i < num && j >=0){
        if( S[j]!=0 && S[j]!=1){
            if(i != 0) printf("\n");
            printf("%d %d",j,S[j]);
            i++;
        }
        j--;
    }

    return 0;
}

你可能感兴趣的:(1083 是否存在相等的差)