# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
477883 | starplat | Type Printer (IOI08_printer) | C++14 | 126 ms | 48660 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
vector<char> order,ans;
int n,mxlen,ct,vis[550005];
string s,mxs;
struct node{
int word,ac[30],go;
}trie[550005];
void add(string x,bool ok)
{
int curr=0;
for (int i=0;i<x.length();i++){
if (!trie[curr].ac[x[i]-'a']) trie[curr].ac[x[i]-'a']=++ct;
curr=trie[curr].ac[x[i]-'a'];
trie[curr].go=ok;
}
trie[curr].word=1;
}
void dfs(int curr,char c)
{
if (curr) ans.push_back(c);
if (trie[curr].word) ans.push_back('P');
int dumb=0;
for (int i=0;i<26;i++){
if (!trie[curr].ac[i]) continue;
int node=trie[curr].ac[i];
if (trie[node].go) dumb=i;
else {
dfs(node,char(i+'a'));
ans.push_back('-');
}
}
if (dumb){
dfs(trie[curr].ac[dumb],dumb+'a');
}
}
int main()
{
cin>>n;
for (int i=0;i<n;i++){
cin>>s;
if (s.length()>mxlen) mxlen=s.length(),mxs=s;
add(s,0);
}
add(mxs,1);
dfs(0,'1');
cout<<ans.size()<<"\n";
for (char c:ans) cout<<c<<"\n";
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |