# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
320009 | 2020-11-07T07:56:32 Z | CursedCode | Type Printer (IOI08_printer) | C++14 | 166 ms | 98660 KB |
#include <bits/stdc++.h> using namespace std; int ans = 0; struct Node{ int last; int is; Node *next[26]; Node(){ last = false; is = false; for(int i = 0; i < 26; i++) next[i] = NULL; } } *root = new Node; void insert(Node *root, string s){ for(int i = 0; i < s.size(); i++){ int index = s[i] - 'a'; if(root -> next[index] == NULL) { root -> next[index] = new Node; ans ++; } root = root -> next[index]; } root -> last = 1; } void search(Node *root, string s){ for(int i = 0; i < s.size(); i++){ int index = s[i] - 'a'; root = root -> next[index]; root -> is = 1; } root -> last = 1; } void Print(Node *root){ for(int i = 0; i < 26; i++){ if(root -> next[i] != NULL && !root -> next[i] -> is){ cout << char(i + 'a')<< '\n'; if(root -> next[i] -> last) cout << "P" << '\n'; Print(root -> next[i]); cout << "-" << '\n'; } } } int n; string st; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; for(int i = 1; i <= n; i++) { string s; cin >> s; insert(root, s); if(s.size() > st.size()) st = s; } search(root, st); cout << ans * 2 + n - st.size() << '\n'; Print(root); for(int i = 0; i < st.size(); i++){ cout << st[i] << '\n'; Print(root -> next[st[i] - 'a']); if(root -> next[st[i] - 'a'] -> last) cout << "P" << '\n'; root = root -> next[st[i] - 'a']; } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Correct | 1 ms | 364 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Correct | 1 ms | 492 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Correct | 1 ms | 364 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 364 KB | Output is correct |
2 | Correct | 1 ms | 364 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 492 KB | Output is correct |
2 | Correct | 2 ms | 1132 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 1900 KB | Output is correct |
2 | Correct | 4 ms | 2284 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 10 ms | 5868 KB | Output is correct |
2 | Correct | 21 ms | 12524 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 26 ms | 14572 KB | Output is correct |
2 | Correct | 9 ms | 3308 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 68 ms | 36452 KB | Output is correct |
2 | Correct | 136 ms | 82916 KB | Output is correct |
3 | Correct | 76 ms | 42728 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 56 ms | 28388 KB | Output is correct |
2 | Correct | 166 ms | 98660 KB | Output is correct |
3 | Correct | 84 ms | 48484 KB | Output is correct |
4 | Correct | 145 ms | 93156 KB | Output is correct |