https://ac.nowcoder.com/acm/contest/329/C

题解:

std

题目已经保证了输入顺序,只需要判断读入的数是否比上一个数大1即可。如果都满足,就是最后一个数没有出现。

BONUS:这题如果不给学生人数,不顺序读入怎么做呢?

时间复杂度:𝑂(𝑁)

#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    int maxx=0,x=0,t;
    int n;
    scanf("%d",&n);
    while (scanf("%d",&t)==1)
    {
        x^=t;
        maxx=max(maxx,t);
    }
    for (int i=1;i<=maxx;i++)
        x^=i;
    if (x==0) x=maxx+1;
    printf("%d\n",x);
    return 0;
}