ACWing 4208. 电话号码

 1 #include<bits/stdc++.h>
 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<<mp.size()<<endl;
26   for(int i=0;i<vec.size();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<sz;i++)
37       if(mys.find(tmp.substr(i))!=mys.end())mys.erase(tmp.substr(i));
38     }
39       cout<<vec[i]<<" "<<mys.size();
40       for(auto &p:mys)cout<<" "<<p;
41       cout<<endl;
42   }
43   return 0;
44 }

 

posted @ 2022-01-09 20:19  matt-11  阅读(28)  评论(0)    收藏  举报