ACWing 4208. 电话号码


 1 #include
 2 using namespace std;
 3 int n;
 4 
 5 unordered_map<string,set<string>>mp;
 6 vector<string>vec;
 7 unordered_map<string,int>ch;
 8 int main()
 9 {
10   cin>>n;
11   
12   for(int i=1;i<=n;i++)
13   {
14     int cnt=0;
15     string ch;
16     string s;
17     cin>>ch>>cnt;
18     vec.push_back(ch);
19     while(cnt--)
20     {
21       cin>>s;
22       mp[ch].insert(s);
23     }
24   }
25   cout<endl;
26   for(int i=0;i)
27   {
28     if(ch[vec[i]])continue;
29     ch[vec[i]]=1;
30   
31     auto mys=mp[vec[i]];
32     for(auto &q:mp[vec[i]])
33     {
34       string tmp=q;
35       int sz=tmp.size();
36       for(int i=1;i)
37       if(mys.find(tmp.substr(i))!=mys.end())mys.erase(tmp.substr(i));
38     }
39       cout<" "<<mys.size();
40       for(auto &p:mys)cout<<" "<<p;
41       cout<<endl;
42   }
43   return 0;
44 }

相关