题目链接:

https://pintia.cn/problem-sets/994805260223102976/problems/994805260780945408


分析:

将某个差值的次数存在数组a对应位置中,然后从a[n-1]开始判断是否大于1,若大于1,则输出下标和次数,一直到a[0]结束,使用while(n--)恰好实现。


AC代码:

 #include<stdio.h>

 int main(void)
{
int n=,m=,i=,a[]={};
scanf("%d",&n);
for(i=;i<=n;i++)
{
scanf("%d",&m);
++a[m-i<?i-m:m-i];
}
while(n--)
if(a[n]>)
printf("%d %d\n",n,a[n]);
return ;
}
05-17 06:46