#include<bits/stdc++.h>
using namespace std;
int t,trie[500005][27],n,node,cnt=0,hsh[500005],mx=-1,print=0;
char s[25],phero[25];
vector<char> krit;
void dfs(int u,int lv)
{
//printf("%d %d\n",u,lv);
if(hsh[u]!=0)
{
krit.push_back('P');
++print;
}
for(int i=0;i<26;i++)
{
if('a'+i!=phero[lv])
if(trie[u][i]!=-1)
{
//printf("%d %d %d %c\n",u,lv,trie[u][i],'a'+i);
krit.push_back('a'+i);
dfs(trie[u][i],lv+1);
//printf("reyna\n");
if(print!=t)
krit.push_back('-');
}
}
if(trie[u][phero[lv]-'a']!=-1&&lv<=mx)
{
krit.push_back(phero[lv]);
dfs(trie[u][phero[lv]-'a'],lv+1);
if(print!=t)
krit.push_back('-');
}
}
int main()
{
memset(trie,-1,sizeof trie);
scanf("%d",&t);
for(int j=1;j<=t;j++)
{
scanf("%s",s+1);
n=0;
for(int i=1;s[i];i++)++n;
node=0;
for(int i=1;i<=n;i++)
{
if(trie[node][s[i]-'a']==-1)
{
++cnt;
trie[node][s[i]-'a']=cnt;
}
node=trie[node][s[i]-'a'];
}
hsh[node]=j;
if(n>mx)
{
mx=n;
for(int i=1;i<=n;i++)phero[i]=s[i];
}
}
dfs(0,1);
printf("%d\n",krit.size());
for(int i=0;i<krit.size();i++)
{
printf("%c\n",krit[i]);
}
}
/*
3
print
the
poem
*/
Compilation message
printer.cpp: In function 'int main()':
printer.cpp:64:14: warning: format '%d' expects argument of type 'int', but argument 2 has type 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wformat=]
64 | printf("%d\n",krit.size());
| ~^ ~~~~~~~~~~~
| | |
| int std::vector<char>::size_type {aka long unsigned int}
| %ld
printer.cpp:65:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
65 | for(int i=0;i<krit.size();i++)
| ~^~~~~~~~~~~~
printer.cpp:40:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
40 | scanf("%d",&t);
| ~~~~~^~~~~~~~~
printer.cpp:43:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
43 | scanf("%s",s+1);
| ~~~~~^~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
22 ms |
53076 KB |
Output is correct |
2 |
Correct |
20 ms |
53076 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
20 ms |
53072 KB |
Output is correct |
2 |
Correct |
20 ms |
53144 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
23 ms |
53076 KB |
Output is correct |
2 |
Correct |
22 ms |
53108 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
26 ms |
53116 KB |
Output is correct |
2 |
Correct |
26 ms |
53048 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
21 ms |
53104 KB |
Output is correct |
2 |
Correct |
21 ms |
53076 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
23 ms |
53104 KB |
Output is correct |
2 |
Correct |
23 ms |
53204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
27 ms |
53332 KB |
Output is correct |
2 |
Correct |
33 ms |
53868 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
38 ms |
53856 KB |
Output is correct |
2 |
Correct |
27 ms |
53320 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
56 ms |
54768 KB |
Output is correct |
2 |
Correct |
97 ms |
57068 KB |
Output is correct |
3 |
Correct |
59 ms |
55236 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
47 ms |
54444 KB |
Output is correct |
2 |
Correct |
97 ms |
57644 KB |
Output is correct |
3 |
Correct |
83 ms |
55488 KB |
Output is correct |
4 |
Correct |
109 ms |
57536 KB |
Output is correct |