春游80pts WA 求助

题目描述

老师带领同学们春游。

已知班上有N位同学,每位同学有从0 到N−1的唯一编号。到了集合时间,老师确认是否所有同学都到达了集合地点,就让同学们报出自己的编号。到达的同学都会报出自己的编号,不会报出别人的编号,但有的同学很顽皮,会多次报出。你能帮老师找出有哪些同学没有到达吗?

【输入描述】

输入包含 2 行。第一行包含两个整数N和M,表示班级有N位同学,同学们共有M次报出编号。约定 2 ≤ N, M ≤ 1000。

第二行包含M个整数,分别为M次报出的编号。约定所有编号都在合理范围内。

【输出描述】

输出一行。如果所有同学都到达,则输出N;

否则由小到大输出所有未到达的同学编号,空格分隔。

【样例输入 1】

3 3 
0 2 1

【样例输出 1】

3 

【样例输入 2】

3 5 
0 0 0 0 0 

【样例输出 2】

1 2

\text{My Code:}

#include <bits/stdc++.h>
using namespace std;
int n,m,a;
bool flag[1010];
int main(){
  cin>>n>>m;
  while(m--){
    cin>>a;
    flag[a]=true;
  }
  for(int i=0;i<=n-1;i++){
    if(flag[i]==false){
      cout<<i<<' ';
    }
  }
  return 0;
}

TEST 1 和 TEST 10 WA了,不知道为什么