Advertisement
Guest User

Untitled

a guest
Sep 17th, 2017
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.79 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. const int N = 7e4 + 100;
  6.  
  7. map <string, pair <int, int> > mp;
  8.  
  9. string ans[N];
  10.  
  11. bool used[N];
  12.  
  13. int main()
  14. {
  15.     int n;
  16.     scanf("%d", &n);
  17.     for (int i = 1; i <= n; i++)
  18.     {
  19.         char _s[9];
  20.         scanf("%s", _s);
  21.         string s = _s;
  22.         set <string> st;
  23.         for (int j = 0; j < s.size(); j++)
  24.         {
  25.             for (int len = 1; len + j <= s.size(); len++)
  26.             {
  27.                 st.insert(s.substr(j, len));
  28.             }
  29.         }
  30.         for (auto it : st)
  31.         {
  32.             mp[it].first++;
  33.             mp[it].second = i;
  34.         }
  35.     }
  36.     for (auto it : mp)
  37.     {
  38.         int id = it.second.second;
  39.         if (it.second.first == 1)
  40.         {
  41.             if (it.first.size() < ans[id].size() || !used[id])
  42.             {
  43.                 ans[id] = it.first;
  44.                 used[id] = 1;
  45.             }
  46.         }
  47.     }
  48.     for (int i = 1; i <= n; i++)
  49.     {
  50.         printf("%s\n", ans[i].c_str());
  51.     }
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement