백준 1764 c++
#include <iostream>
#include <algorithm>
#include <map>
#include <vector>
#include <string>
using namespace std;
int input(int lower, int upper);
void input_map_list(map <string, bool>& list, int size);
int check_result(map <string, bool>& list, int size, vector <string>& answer, int size_answer);
void sort_vector(vector <string>& list);
void print_result(int answer, vector<string>& list);
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N, M, count = 0;
map <string, bool> list;
vector <string> answer;
N = input(1, 500000);
M = input(1, 500000);
input_map_list(list, N);
count = check_result(list, N, answer, M);
sort_vector(answer);
print_result(count, answer);
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_map_list(map <string, bool>& list, int size)
{
int i;
string temp;
for (i = 0; i < size; i++)
{
cin >> temp;
if (temp.length() <= 20)
{
//list[temp] = true;
list.insert(make_pair(temp, true));
}
else
{
i--;
}
}
return;
}
int check_result(map <string, bool>& list, int size, vector <string>& answer, int size_answer)
{
int i;
int count = 0;
string temp;
for (i = 0; i < size_answer; i++)
{
cin >> temp;
if (temp.length() <= 20)
{
if (list[temp] == true)
{
answer.push_back(temp);
count++;
}
else
{
;
}
}
else
{
i--;
}
}
return count;
}
void sort_vector(vector <string> &list)
{
sort(list.begin(), list.end());
return;
}
void print_result(int answer, vector<string>& list)
{
int i;
cout << answer << "\n";
for (i = 0; i < list.size(); i++)
{
cout << list[i] << "\n";
}
return;
}