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;
}