日々精進

aikoと旅行とプログラミング

【AOJ 1367】Rearranging a Sequence

問題

Rearranging a Sequence | Aizu Online Judge

方針

  • 与えられたM個の値を逆順に出力する.
  • 出力したかどうかを管理しておき, 1回も出力していない場合に限って出力を行う.

コード

#include<bits/stdc++.h>
 
#define rep(i, n) REP(i, 0, n)
#define REP(i, a, n) for(int i = a ; i < (int)n ; i++)
 
using namespace std;
 
int change[200001];
bool flag[200001];
 
signed main(){
  int n, m;
  cin >> n >> m;
   
  rep(i, m){
    cin >> change[i];
  }
 
  fill(flag, flag+20000, false);
 
  reverse(change, change+m);
  rep(i, m){
    if(!flag[change[i]]){
      cout << change[i] << endl;
      flag[change[i]] = true;
    }
  }
   
  REP(i, 1, n+1){
    if(!flag[i]) cout << i << endl;
  }
 
}