#include <bits/stdc++.h>
using namespace std;
int const N=1e5+5;
struct node
{
char ch;
map<char,node*> mp;
set<pair<int,node*>> adj;
int dep=1;
int cnt=0;
};
node* root;
int tot=0;
int maxx=0;
void add(){
string s;
cin>>s;
int i=0;
node* cur=root;
maxx=max(maxx,int(s.length()));
while(i<int(s.length())){
if(cur->mp[s[i]]==NULL){
cur->mp[s[i]]=new node();
tot++;
cur->mp[s[i]]->ch=s[i];
}
cur=cur->mp[s[i]];
i++;
}
cur->cnt++;
}
int dep_set(node* rt){
for(auto i:rt->mp){
rt->dep=max(rt->dep,dep_set(i.second)+1);
rt->adj.insert({i.second->dep,i.second});
}
return rt->dep;
}
vector<char> ans;
void dfs1(node* rt){
for (int i = 0; i < rt->cnt; ++i)
printf("%c\n",'P');
for(auto i:rt->adj){
printf("%c\n",i.second->ch);
tot--;
dfs1(i.second);
if(tot!=0)
printf("%c\n",'-');
}
}
int main(){
int t;
cin>>t;
root=new node();
for (int i = 0; i < t; ++i)
add();
dep_set(root);
printf("%d\n",(tot*2)+t-maxx);
dfs1(root);
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
340 KB |
Output is correct |
2 |
Correct |
0 ms |
212 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
2 ms |
1108 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
2004 KB |
Output is correct |
2 |
Correct |
3 ms |
2388 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
8 ms |
6484 KB |
Output is correct |
2 |
Correct |
20 ms |
13928 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
26 ms |
16368 KB |
Output is correct |
2 |
Correct |
9 ms |
3556 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
67 ms |
40996 KB |
Output is correct |
2 |
Correct |
139 ms |
93936 KB |
Output is correct |
3 |
Correct |
85 ms |
48088 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
63 ms |
31960 KB |
Output is correct |
2 |
Correct |
183 ms |
111756 KB |
Output is correct |
3 |
Correct |
105 ms |
54600 KB |
Output is correct |
4 |
Correct |
134 ms |
105468 KB |
Output is correct |