Submission #388134

#TimeUsernameProblemLanguageResultExecution timeMemory
388134IloveNType Printer (IOI08_printer)C++14
100 / 100
224 ms89912 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define pii pair<int,int> #define pll pair<ll,ll> #define fi first #define se second #define mp make_pair #define pb push_back #define eb emplace_back #define all(vr) vr.begin(),vr.end() #define vi vector<int> #define vll vector<ll> const int N=1e5+10; struct node { map<char,node*> nxt; int mx_len; vector<pair<int,char>> order; }; node* root=new node(); void add_string(string s) { node* cur=root; for (char c : s) { if (cur->nxt[c]==NULL) cur->nxt[c]=new node(); cur=cur->nxt[c]; } cur->mx_len=s.length(); } void dfs(node *cur) { if (cur->nxt.empty()) return; cur->mx_len=0; vector<pair<int,char>> &vt=cur->order; for (pair<char,node*> p : cur->nxt) { dfs(p.se); cur->mx_len=max(cur->mx_len,p.se->mx_len); vt.eb(p.se->mx_len,p.fi); } sort(all(vt)); } vector<char> ans; void print(node *cur) { for (pair<int,char> p : cur->order) if (p.se=='P') ans.eb(p.se); else { ans.eb(p.se); print(cur->nxt[p.se]); ans.eb('-'); } } int main() { //freopen("ss.inp","r",stdin); ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n; for (int i=1;i<=n;i++) { string s; cin>>s; s+='P'; add_string(s); } dfs(root); print(root); while (ans.back()=='-') ans.pop_back(); cout<<ans.size()<<"\n"; for (char c : ans) cout<<c<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...