Submission #1313314

#TimeUsernameProblemLanguageResultExecution timeMemory
1313314algoproclubType Printer (IOI08_printer)C++20
20 / 100
61 ms107292 KiB
// UUID: 06be7373-7138-42b8-b929-0fb04f0da3bc #include <bits/stdc++.h> using namespace std; #define ll int #define fs first #define sc second #define pb push_back #define pll pair<ll, ll> #define vll vector<ll> #define v2ll vector<vll> #define pqll priority_queue<ll> const ll maxn = 1e6; ll n; vector<array<ll, 26>> trie(maxn); vll cnt(maxn); ll nodes = 1; vector<bool> vis(maxn); vector<char> ans; string maxs; void insert(string s) { ll cur = 1; for (char c : s) { if (!trie[cur][c-'a']) trie[cur][c-'a'] = ++nodes; cur = trie[cur][c-'a']; cnt[cur]++; } } void dfs(ll p, ll d) { vis[p] = true; bool flag = false; ll l = -1; for (ll i = 0; i < 26; i++) { if (i == maxs[d]-'a') { l = i; continue; } ll u = trie[p][i]; if (u) { flag = true; if (!vis[u]) { char c = i+'a'; ans.pb(c); dfs(u, d+1); ans.pb('-'); } } } if (l != -1) { ll u = trie[p][l]; if (u) { flag = true; if (!vis[u]) { char c = l+'a'; ans.pb(c); dfs(u, d+1); ans.pb('-'); } } } if (!flag) ans.pb('P'); } void solve() { cin >> n; for (ll i = 0; i < n; i++) { string s; cin >> s; if (s.length() > maxs.length()) maxs = s; insert(s); } dfs(1, 0); while(ans.back() == '-') ans.pop_back(); cout << ans.size() << '\n'; for (char c : ans) cout << c << '\n'; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); ll t = 1; //cin >> t; while(t--) { solve(); } 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...