Submission #1115659

#TimeUsernameProblemLanguageResultExecution timeMemory
1115659NahueperaType Printer (IOI08_printer)C++17
10 / 100
43 ms37488 KiB
#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)

printer.cpp: In function 'int main()':
printer.cpp:76:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   76 |     for(int j = 0; j < last - r.length(); j++){
      |                    ~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...