Submission #661146

#TimeUsernameProblemLanguageResultExecution timeMemory
661146as111Type Printer (IOI08_printer)C++14
0 / 100
710 ms57168 KiB
//tries data structure, can be used for prefixes, etc. #include <iostream> #include <vector> #include <string> #define MAXN 25000 using namespace std; struct Trie { int nex[26]; // index of next trie for each letter int prev; // parent bool end; // end of a word Trie() { fill(nex, nex + 26, -1); prev = -1; end = false; } }; int N; Trie tries[MAXN * 20 + 5]; char letters[200]; // store letter for each ascii value int index = 1; int wc = 0; //word count void traverse(int curr) { for (int c = 0; c < 26; c++) { // loop through each letter if (tries[curr].nex[c] != -1) { cout << letters[c] << endl; traverse(tries[curr].nex[c]); if (wc == N) return; cout << "-" << endl; } } if (tries[curr].end) { cout << "P" << endl; wc++; } return; } int main() { cin >> N; for (int i = 0; i < N; i++) { string str; cin >> str; int curr = 0; for (int j = 0; j < str.length(); j++) { int c = (int)str[j] - 97; letters[c] = str[j]; if (tries[curr].nex[c] != -1) { // prefix recorded previously curr = tries[curr].nex[c]; } else { tries[curr].nex[c] = index; tries[index].prev = curr; curr = index; index++; } cout << curr << endl; } tries[curr].end = true; cout << endl; } int curr = 0; traverse(curr); }

Compilation message (stderr)

printer.cpp: In function 'int main()':
printer.cpp:47:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |   for (int j = 0; j < str.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...