# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
635362 | NeroZein | Type Printer (IOI08_printer) | C++17 | 46 ms | 36188 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>
#define FOR(i,a,b) for (int i=a; i<=(b); i++)
using namespace std;
int n;
long long ans;
string mx;
struct node{
node* ch[26];
int cnt;
node(){
for(int i=0;i<26;i++)
ch[i] = NULL;
cnt = 0;
}
};
node* root = new node();
void add(string s){
node* cur = root;
for(int i=0;i<s.size();i++){
int id = s[i]-'a';
if (cur->ch[id] == NULL)
cur->ch[id] = new node(),ans+=2;
cur = cur->ch[id];
cur->cnt++;
}
}
void dfs(node* go,int lv=-1){
bool leaf = 0;int left = -1;
if(go != root)leaf = 1;
for(int i=0;i<26;i++){
if(go->ch[i] == NULL)continue;
leaf = 0;
if(mx[lv+1]==(i+'a')){left=i;continue;}
cout<<(char(i+'a'))<<'\n';
dfs(go->ch[i],lv+1);
cout<<('-')<<'\n';
}
if (left!=-1){
cout<<(char('a'+left))<<'\n';
dfs(go->ch[left],lv+1);
}
if (leaf)
cout<<('P')<<'\n';
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin>>n;
FOR(i,1,n){
string s;
cin>>s;
add(s);
if((int)mx.size() < (int)s.size())
mx = s;
}
cout<<ans-(int)mx.size()+n<<'\n';
dfs(root);
}
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... |