# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
936838 | 2024-03-02T19:41:21 Z | Irate | Type Printer (IOI08_printer) | C++14 | 38 ms | 53008 KB |
#include<bits/stdc++.h> using namespace std; struct Trie{ vector<vector<int>>trie; vector<bool>isWord; int nxt = 1, mxN = 5e5 + 5; string S = ""; Trie(){ trie.resize(26); for(int i = 0;i < 26;++i){ trie[i].resize(mxN); } isWord.resize(mxN); } void Insert(string &s){ int cur = 0; for(int i = 0;i < s.size();++i){ if(trie[s[i] - 'a'][cur]){ cur = trie[s[i] - 'a'][cur]; } else{ trie[s[i] - 'a'][cur] = nxt; cur = nxt; nxt++; } } isWord[cur] = 1; } void Traverse(int cur){ if(isWord[cur]){ S += 'P'; S += '\n'; } for(int i = 0;i < 26;++i){ if(trie[i][cur]){ S += char('a' + i); S += '\n'; Traverse(trie[i][cur]); } } S += '-'; S += '\n'; } }; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n; cin >> n; Trie tr; int mx = 0; string longest = ""; for(int i = 0;i < n;++i){ string s; cin >> s; if(s.size() > mx){ mx = s.size(); longest = s; } tr.Insert(s); } for(int i = 0;i < 26;++i){ if(longest[0] - 'a' == i || !tr.trie[i][0])continue; tr.S += char('a' + i); tr.S += '\n'; tr.Traverse(tr.trie[i][0]); } tr.S += longest[0]; tr.S += '\n'; tr.Traverse(tr.trie[longest[0] - 'a'][0]); while(tr.S.back() == '-' || tr.S.back() == '\n')tr.S.pop_back(); cout << (tr.S.size() + 1) / 2 << "\n" << tr.S; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 18 ms | 51288 KB | Output is correct |
2 | Correct | 17 ms | 51292 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 18 ms | 51284 KB | Output is correct |
2 | Correct | 17 ms | 51292 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 18 ms | 51292 KB | Output is correct |
2 | Incorrect | 20 ms | 51292 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 19 ms | 51292 KB | Output is correct |
2 | Correct | 17 ms | 51292 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 17 ms | 51288 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 19 ms | 51544 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 21 ms | 51616 KB | Output is correct |
2 | Incorrect | 25 ms | 51964 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 26 ms | 52208 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 38 ms | 53008 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 36 ms | 52748 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |