解题思路:利用map的自动排序
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,num;
map<int,int>mp;
cin>>n;
for(int i=1;i<=n;i++){
cin>>num;
mp[abs(num-i)]++;
}
for(auto it=mp.rbegin();it!=mp.rend();it++)
if(it->second!=1)
cout<<it->first<<" "<<it->second<<endl;
}
运行结果: