Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <map>
- #include <vector>
- #include <string>
- using namespace std;
- const int INF = 1000000000;
- map <string, vector<string> > d;
- string s, s1, main_s;
- bool check(string ss)
- {
- for (int i = 0; i < ss.size(); i++)
- if (ss[i] == ' ')
- return true;
- return false;
- }
- int main()
- {
- int n;
- cin >> n;
- getline(cin, s);
- unsigned long j = 0;
- for (int i = 0; i < n; i++)
- {
- getline(cin, s);
- unsigned long q = s.find(' ');
- main_s = s.substr(0, q);
- for (unsigned long f = 0; f < s.length(); f++)
- if (f == s.length() - 1 || s[f + 1] == ' ')
- {
- s1 = s.substr(j, f - j + 1);
- j = f + 2;
- d[main_s].push_back(s1);
- }
- }
- int m;
- cin >> m;
- for (int i = 0; i < m; i++)
- {
- string ss;
- cin >> ss;
- bool flag = false;
- for (map <string, vector<string> > :: iterator it = d.begin(); it != d.end(); it++)
- {
- for (int j = 0; j < it -> second.size(); j++)
- if (it -> second[j] == ss)
- {
- flag = true;
- cout << it -> first << endl;
- break;
- }
- if (flag)
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement