# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
492753 | 2021-12-08T19:15:38 Z | erik_kl1 | Type Printer (IOI08_printer) | C++11 | 120 ms | 102168 KB |
#include <bits/stdc++.h> #define F0R(i, n) for(int i = 0; i < (n); i++) using namespace std; ostringstream os; struct node { int term_cnt; bool marked; node *nex[26]; node() { term_cnt = 0; marked = 0; F0R(i,26) nex[i] = NULL; } }; struct trie { node rt; void insert(string s) { node *cur = &rt; F0R(i,s.size()) { if(cur->nex[s[i]-'a'] == NULL) cur->nex[s[i]-'a'] = new node(); cur = cur->nex[s[i]-'a']; } cur->term_cnt++; } void mark(string s) { node *cur = &rt; F0R(i,s.size()) { cur = cur->nex[s[i]-'a']; cur->marked = 1; } } } t; int dfs(node *v) { int ret = v->term_cnt; F0R(i,ret) os << "P\n"; F0R(i,26) if(v->nex[i] != NULL && !v->nex[i]->marked) { os << ((char) (i+'a')) << '\n'; ret += dfs(v->nex[i]); os << "-\n"; ret += 2; } F0R(i,26) if(v->nex[i] != NULL && v->nex[i]->marked) { os << ((char) (i+'a')) << '\n'; ret += dfs(v->nex[i]); ret++; } return ret; } int main() { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); int N; cin >> N; string longest = ""; F0R(i,N) { string s; cin >> s; t.insert(s); if(s.size() > longest.size()) longest = s; } t.mark(longest); cout << dfs(&t.rt) << '\n'; cout << os.str(); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 332 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 332 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 332 KB | Output is correct |
2 | Correct | 1 ms | 204 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 332 KB | Output is correct |
2 | Correct | 1 ms | 1100 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 1868 KB | Output is correct |
2 | Correct | 3 ms | 2252 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 6092 KB | Output is correct |
2 | Correct | 15 ms | 12872 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 26 ms | 15144 KB | Output is correct |
2 | Correct | 7 ms | 3404 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 52 ms | 37672 KB | Output is correct |
2 | Correct | 120 ms | 85904 KB | Output is correct |
3 | Correct | 56 ms | 44344 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 37 ms | 29404 KB | Output is correct |
2 | Correct | 120 ms | 102168 KB | Output is correct |
3 | Correct | 61 ms | 50352 KB | Output is correct |
4 | Correct | 102 ms | 96488 KB | Output is correct |