Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 7e4 + 100;
- map <string, pair <int, int> > mp;
- string ans[N];
- bool used[N];
- int main()
- {
- int n;
- scanf("%d", &n);
- for (int i = 1; i <= n; i++)
- {
- char _s[9];
- scanf("%s", _s);
- string s = _s;
- set <string> st;
- for (int j = 0; j < s.size(); j++)
- {
- for (int len = 1; len + j <= s.size(); len++)
- {
- st.insert(s.substr(j, len));
- }
- }
- for (auto it : st)
- {
- mp[it].first++;
- mp[it].second = i;
- }
- }
- for (auto it : mp)
- {
- int id = it.second.second;
- if (it.second.first == 1)
- {
- if (it.first.size() < ans[id].size() || !used[id])
- {
- ans[id] = it.first;
- used[id] = 1;
- }
- }
- }
- for (int i = 1; i <= n; i++)
- {
- printf("%s\n", ans[i].c_str());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement