1083 是否存在相等的差 (20 分)

给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差?

#include<iostream>
#include<vector>
using namespace std;
int main ()
{
    int n,b;
    cin>>n;
    int a[10000]={0};
    for(int i=1;i<=n;i++)
    {
        cin>>b;
        b=b-i;
        if(b<0)
        b=-b;
        a[b]++;
    }
    for(int i=9999;i>=0;i--)
    {
        if(a[i]>1)
        cout<<i<<" "<<a[i]<<endl;
    }
    return 0;
 } 

猜你喜欢

转载自blog.csdn.net/A0_0A0_0A0_0A/article/details/82957503