yokobuttonの不定期で競技プログラミングをするブログ

不定期で解けた競技プログラミングコンテストの問題を載せています。

AtCoder Beginner Contest 236 B - Who is missing?

問題の要約
 整数1,2,...,Nが書かれたカードが4枚ずつ、合計4N枚ある。
 これらのカードをシャッフルしたのち1枚のカードを選んで抜き取り、残りの4N-1枚を束にして渡された。
 渡された束のi(1<=i<=4N-1)枚目のカードには、整数Aiが書かれている。
 抜き取られたカードに書かれていた整数を求めよ。
制約
 1<=N<=10^5
 1<=Ai<=N(1<=i<=4N-1)
入力
 N
 A1 A2 ,,, A4N-1
考え方
 1,最初に整数1,2,...,Nが書かれたカードが4枚ずつあり、それから1枚のカードだけが抜き取られるのだから、抜き取られたカードは3枚になっている。
 2,vectorで枚数を管理して、3枚のカードを出力すればよい。

実際のプログラム
#include<iostream>
#include<vector>

using namespace std;

int main(){
  long long N;
  cin >> N;
  vector<long long> card(N,0);
  for(long long i = 0; i < 4*N-1; i++){
    long long A;
    cin >> A;
    card[A-1]++;
  }
  long long ans = 0;
  for(long long i = 0; i < N; i++){
    if(card[i] == 3){
      ans = i+1;
      break;
    }
  }
  
  cout << ans << endl;
  
  return 0;
}