题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805260780945408
这题注意一下差值次数为1的不要输出就行了
代码
#include<cstdio>#include<map>#include<cmath>#include<algorithm>using namespace std;int main(){int n, temp;bool bool_list[10010];fill(bool_list, bool_list + 10000, false);map<int, int> m;scanf("%d", &n);for(int i = 1; i <= n; i++){scanf("%d", &temp);if(bool_list[abs(temp - i)] == false){m[abs(temp - i)] = 1;bool_list[abs(temp - i)] = true;} else m[abs(temp - i)]++;}for(auto it = m.rbegin(); it != m.rend(); it++){if(it->second > 1) printf("%d %d\n", it->first, it->second);}}
