# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1115659 | Nahuepera | Type Printer (IOI08_printer) | C++17 | 43 ms | 37488 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define tip tuple<int, string>
using namespace std;
struct TrieNodeStruct {
TrieNodeStruct* children[26];
bool isEndOfWord;
TrieNodeStruct() {
isEndOfWord = false;
for(int i = 0; i < 26; i++) {
children[i] = nullptr;
}
}
};
struct TrieStruct {
TrieNodeStruct* root;
TrieStruct() {
root = new TrieNodeStruct();
}
string insert(string word) {
TrieNodeStruct* current = root;
string res = "";
for(char c : word) {
int index = c - 'a';
if(current->children[index] == nullptr) {
current->children[index] = new TrieNodeStruct();
}
else{
res += c;
}
current = current->children[index];
}
current->isEndOfWord = true;
return res;
}
};
int main(){
int n; cin >> n;
vector<tip> lst(n);
for(int i = 0; i < n; i++){
string s; cin >> s;
lst[i] = make_tuple(s.length(), s);
}
sort(lst.begin(), lst.end());
TrieStruct t;
string res = "";
int size = 0;
auto [nl, sl] = lst[0];
t.insert(sl);
int last = nl;
for(int j = 0; j < nl; j++){
res += sl[j];
res += '\n';
size++;
}
res += 'P';
res += '\n';
size++;
for(int i = 1; i < n; i++){
auto [n, s] = lst[i];
string r = t.insert(s);
// cout << s << ": " << r << '\n';
for(int j = 0; j < last - r.length(); j++){
res += '-';
res += '\n';
size++;
}
for(int j = 0 + r.length(); j < n; j++){
res += s[j];
res += '\n';
size++;
}
res += 'P';
res += '\n';
size++;
last = n;
}
cout << size << '\n';
cout << res;
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |