问题标题: 酷町堂:1556

0
0
已解决
曹志
曹志
资深守护
资深守护

1556   海拔高度之谜

题目描述 Description

小王奉命去测绘A地附近的地形,要求对附近地形的海拔高度进行测量,一共要测量n个数据,经过测量和计算,小王发现两个连续数值之间差的绝对值包括了[1,n-1]之间的所有整数,如1 4 2 3的差的绝对值分别为:3,2,1。现在小王去B地继续测量任务,请问他在这里测量的数据能满足这个原理吗?

输入描述 Input Description

以一个整数n(1<=n<=1000)开始,接下来n个空格隔开的在[-100,100]之间的整数

输出描述 Output Description

输出一行若该数组符合规律则输出"Yes",否则输出"No"

 

我的代码哪里错了,60分?

那个快排没问题

 

#include<iostream>
#include<cmath>
using namespace std;
int a[1010],n;
void quicksort(int left,int right)
{
    if(left>right)
        return;
    int t,temp=a[left],i=left,j=right;
    while(i!=j)
    {
        while(a[j]>=temp&&i<j)
            j--;
        while(a[i]<=temp&&i<j)
            i++;
        if(i<j)
        {
            t=a[i];
            a[i]=a[j];
            a[j]=t;
        }
    }
    a[left]=a[i];
    a[i]=temp;
    quicksort(left,i-1);
    quicksort(i+1,right);
    return;
}
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
    quicksort(0,n-1);
    for(int i=0;i<n-1;i++)
    {
        if(abs((a[i+1]-a[i]))!=1)
        {
            cout<<"No";
            return 0;
        }
    }
    cout<<"Yes";
    return 0;
}

样例输入 Sample Input

 

样例一:
4 1 4 2 3
样例二:
5 1 4 2 -1 6

样例输出 Sample Output

 

样例一:
Yes
样例二:
No


0
0
0
曹志
曹志
资深守护
资深守护

本题已解决,可以发其他的,然后我结帖

0
0
我要回答