# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
858953 | 2023-10-09T12:59:38 Z | ntkphong | Type Printer (IOI08_printer) | C++14 | 38 ms | 37484 KB |
#include <bits/stdc++.h> using namespace std; const int mxN = 100010; struct node { int w_count; int child[26]; }; int n; vector<string> s; vector<node> tree; vector<int> mark(mxN * 20); vector<char> answer; int id_max; int cnt = 0; void new_node() { node x; x.w_count = 0; for(int i = 0; i < 26; i ++) x.child[i] = -1; tree.push_back(x); } void init() { new_node(); } void add(string s, int type) { int idx = 0; for(int i = 0; i < s.size(); i ++) { int w = s[i] - 'a'; if(tree[idx].child[w] == -1) { new_node(); tree[idx].child[w] = tree.size() - 1; } idx = tree[idx].child[w]; mark[idx] = type; } tree[idx].w_count ++ ; } void _dfs(int u) { for(int i = 1; i <= tree[u].w_count; i ++) { answer.push_back('P'); cnt ++ ; } if(cnt == n) { cout << answer.size() << "\n"; for(auto c : answer) cout << c; exit(0); } for(int i = 0; i < 26; i ++) { int v = tree[u].child[i]; if(v == -1) continue ; if(!mark[v]) { answer.push_back((char)(i + 'a')); _dfs(v); answer.push_back('-'); } } for(int i = 0; i < 26; i ++) { int v = tree[u].child[i]; if(v == -1) continue ; if(mark[v]) { answer.push_back((char)(i + 'a')); _dfs(v); answer.push_back('-'); } } } int main() { #define taskname "" if(fopen(taskname".inp", "r")) { freopen(taskname".inp", "r", stdin); freopen(taskname".out", "w", stdout); } cin.tie(0)->sync_with_stdio(0); cin >> n; s.resize(n + 1); init(); for(int i = 1; i <= n; i ++) { cin >> s[i]; if(s[i].size() > s[id_max].size()) { id_max = i; } } for(int i = 1; i <= n; i ++) { if(i == id_max) continue ; add(s[i], 0); } add(s[id_max], 1); _dfs(0); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 8280 KB | Line "tptttykduyvxjbzhqupP" doesn't correspond to pattern "[a-z\-P]{1}" |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 8284 KB | Line "eejzatjmnqxctnP--------------h...-yerxP----labfaryosskugbkiuffdP" doesn't correspond to pattern "[a-z\-P]{1}" |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 8284 KB | Line "hjxgqkP------iupqiqP------rhpq...------------wPfxlmwfirlgbdevjdP" doesn't correspond to pattern "[a-z\-P]{1}" |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 8284 KB | Line "bhvdxrpthaP----------edczvdgoy...--------------xomsgennpdlurnmvP" doesn't correspond to pattern "[a-z\-P]{1}" |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 8284 KB | Line "abbblauqkfdP----------edP--svh...----ooP--ulwzP----eynorwrbizaiP" doesn't correspond to pattern "[a-z\-P]{1}" |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 9256 KB | Line "aPaisxlhagqbjwbP-------------b...----------zP-cclviwgdudcybahuwP" doesn't correspond to pattern "[a-z\-P]{1}" |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 7 ms | 11788 KB | Line "aPacaoP---izjpfrpvhbP---------...------silP---zuknicjtukmwmlddzP" doesn't correspond to pattern "[a-z\-P]{1}" |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 13 ms | 16720 KB | Line "aPadmeP---ejuixzggakP---------...----vP-wshP---gPkwzakqubhstcdqP" doesn't correspond to pattern "[a-z\-P]{1}" |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 38 ms | 37484 KB | Line "aPaadfP--iznyxP-----nqjP----bo...------------nhbvobjbxuwlhzwchfP" doesn't correspond to pattern "[a-z\-P]{1}" |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 25 ms | 24012 KB | Line "aPaPbakyloxqrjP----------chfaP...vpiP--------jbfbP---jtearnhdjeP" doesn't correspond to pattern "[a-z\-P]{1}" |
2 | Halted | 0 ms | 0 KB | - |