# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1086374 | 4QT0R | Type Printer (IOI08_printer) | C++17 | 98 ms | 50448 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;
int trie[1000003][26];
bool slo[1000003];
int iter=1;
int dep[1000003];
int lft;
string ans;
void build(string s){
int v=1;
for (int i = 0; i<s.size(); i++){
if (!trie[v][s[i]-'a'])trie[v][s[i]-'a']=++iter;
v=trie[v][s[i]-'a'];
}
slo[v]=true;
}
void prep(int v){
for (int i = 0; i<26; i++)if (trie[v][i]){
prep(trie[v][i]);
dep[v]=max(dep[v],dep[trie[v][i]]+1);
}
}
void dfs(int v){
if (slo[v]){
ans+='P';
lft--;
}
vector<pair<int,int>> kra;
for (int i = 0; i<26; i++)if (trie[v][i])kra.push_back({trie[v][i],i});
sort(kra.begin(),kra.end(),[](pair<int,int> a, pair<int,int> b){return dep[a.first]<dep[b.first];});
for (auto [u,i] : kra){
ans+='a'+i;
dfs(u);
}
if (lft)ans+='-';
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
lft=n;
string s;
for (int i = 1; i<=n; i++){
cin >> s;
build(s);
}
prep(1);
dfs(1);
cout << ans.size() << '\n';
for (int i = 0; i<ans.size(); i++)cout << ans[i] << '\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... |