PAT1083 是否存在相等的差 (20 分)
程序员文章站
2022-03-22 21:34:58
...
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805260780945408
思路:设置为n大小的数组re,并初始化为0,存储差值的个数。输入的时候,求差值x,并让re[x]++。从大到小遍历,如果re[i]>1,就输i和re[i]。
#include <iostream>
using namespace std;
const unsigned int maxn = 10005;
void solve()
{
int re[maxn];
int n;
cin>>n;
for(int i = 0; i < n; i++)
re[i] = 0;
for(int i = 1; i <= n; i++)
{
int c;
cin>>c;
int x = c - i;
if(x < 0)
x *= -1;
re[x]++;
}
for(int i = n - 1; i >= 0; i--)
if(re[i] > 1)
cout<<i<<" "<<re[i]<<endl;
return;
}
int main()
{
solve();
return 0;
}
20分简单类
2018年9月19日 8:54:57