连续整数

牛牛的好朋友羊羊在纸上写了n+1个整数,羊羊接着抹除掉了一个整数,给牛牛猜他抹除掉的数字是什么。牛牛知道羊羊写的整数神排序之后是一串连续的正整数,牛牛现在要猜出所有可能是抹除掉的整数。例如:
10 7 12 8 11 那么抹除掉的整数只可能是9
5 6 7 8 那么抹除掉的整数可能是4也可能是9

输入描述:

输入包括2行:
 第一行为整数n(1 <= n <= 50),即抹除一个数之后剩下的数字个数
 第二行为n个整数num[i] (1 <= num[i] <= 1000000000)


输出描述:

在一行中输出所有可能是抹除掉的数,从小到大输出,用空格分割,行末无空格。如果没有可能的数,则输出mistake


输入例子1:

2 3 6


输出例子1:

mistake
算法:模拟

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void del(vector<int>&f){
    int n=f.size();
    for(int i=1;i<n;i++){
        if(f[i]!=f[i-1]+1)
            if(f[i]-f[i-1]>2||(f[n-1]-f[0]!=n)||f[i]==f[i-1]){
                cout<<"mistake"<<endl;
                return ;
            }
            else{
                cout<<f[i-1]+1<<endl;
                return ;
            }
    }
    if(f[0]-1>0)cout<<f[0]-1<<' '<<f[n-1]+1<<endl;
    else cout<<f[n-1]+1<<endl;
}
int main(void){
    int n;
    cin>>n;
    vector<int>f(n);
    for(int i=0;i<n;i++)cin>>f[i];
    sort(f.begin(),f.end());
    del(f);
    return 0;
}

 

posted @ 2019-07-15 17:07  YF-1994  阅读(381)  评论(0编辑  收藏  举报