# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
929209 | 2024-02-17T23:28:41 Z | AlphaMale06 | Type Printer (IOI08_printer) | C++17 | 86 ms | 59584 KB |
#include <bits/stdc++.h> using namespace std; #define pb push_back vector<char> ans; string mxlenstr; struct node{ int v, cnt; int p[26]; }; vector<node> trie; node nw(){ node ret; ret.v=trie.size(); ret.cnt=0; for(int i=0; i<26; i++)ret.p[i]=-1; return ret; } void add(string s){ int v=0; for(char c : s){ if(trie[v].p[c-'a']==-1){ trie[v].p[c-'a']=trie.size(); trie.pb({nw()}); } v=trie[v].p[c-'a']; } trie[v].cnt++; } void dfs(int v, int dep){ if(v){ for(int i=0; i<trie[v].cnt; i++)ans.pb('P'); } int avoid; if(dep<mxlenstr.size())avoid = mxlenstr[dep]-'a'; else{ ans.pb('-'); return; } for(int i=0; i< avoid; i++){ if(trie[v].p[i]!=-1){ ans.pb(i+'a'); dfs(trie[v].p[i], dep+1); } } for(int i=25; i>=avoid; i--){ if(trie[v].p[i]!=-1){ ans.pb(i+'a'); dfs(trie[v].p[i], dep+1); } } ans.pb('-'); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; trie.pb({nw()}); int mxlen=0; for(int i=0; i<n; i++){ string s; cin >> s; if(s.size()>mxlen){ mxlen=s.size(); mxlenstr=s; } add(s); } dfs(0, 0); while(ans.back()=='-')ans.pop_back(); cout << ans.size() << '\n'; for(char c : ans)cout << c << '\n'; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 600 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 344 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 604 KB | Output is correct |
2 | Correct | 1 ms | 1020 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 1364 KB | Output is correct |
2 | Correct | 3 ms | 2388 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 4556 KB | Output is correct |
2 | Correct | 14 ms | 9164 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 14 ms | 8772 KB | Output is correct |
2 | Correct | 6 ms | 2388 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 36 ms | 31424 KB | Output is correct |
2 | Correct | 74 ms | 58808 KB | Output is correct |
3 | Correct | 41 ms | 30476 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 28 ms | 16328 KB | Output is correct |
2 | Correct | 86 ms | 59584 KB | Output is correct |
3 | Correct | 45 ms | 30660 KB | Output is correct |
4 | Correct | 77 ms | 58792 KB | Output is correct |