백준 10816 c++
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;
int input(int lower, int upper);
void input_vector(vector <int> &card, int size);
void sort_vector(vector <int> &card);
void print_result(vector <int> &card1, int N, vector <int> &card2, int M);
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N, M;
vector<int> card1;
vector<int> card2;
N = input(1, 500000);
input_vector(card1, N);
M = input(1, 500000);
input_vector(card2, M);
sort_vector(card1);
print_result(card1, N, card2, M);
return 0;
}
int input(int lower, int upper)
{
int A;
while (1)
{
cin >> A;
if (A >= lower && A <= upper)
{
break;
}
else
{
;
}
}
return A;
}
void input_vector(vector <int> &card, int size)
{
int i;
int temp;
for (i = 0; i < size; i++)
{
temp = input(-10000000, 10000000);
card.push_back(temp);
}
return;
}
void sort_vector(vector <int> &card)
{
//cout << "sort 실행" << endl;
sort(card.begin(), card.end());
return;
}
void print_result(vector <int> &card1, int N, vector <int> &card2, int M)
{
//cout << "print_result 실행" << endl;
int i;
int temp;
for (auto i = 0; i < M; i++)
{
temp = card2[i];
cout << upper_bound(card1.begin(), card1.end(), temp) - lower_bound(card1.begin(), card1.end(), temp) << " ";
}
cout << "\n";
return;
}