Submission #930900

#TimeUsernameProblemLanguageResultExecution timeMemory
930900woofesType Printer (IOI08_printer)C++17
0 / 100
38 ms29380 KiB
// #pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; using ll = long long; const int cnt_s = 26; struct node { bool val; int lnk[cnt_s]; node () { val = false; for (int i = 0; i < cnt_s; i++) { lnk[i] = -1; } } }; vector <node> trie(1); void add(string& s) { int v = 0; for (char c : s) { int u = trie[v].lnk[c - 'a']; if (u == -1) { u = trie.size(); trie.emplace_back(); trie[v].lnk[c - 'a'] = u; } v = u; } trie[v].val = true; } vector <char> res; string s1; int j = 0; bool is_ob = true; void get_way(int v) { if (is_ob) { if (j > s1.size()) { is_ob = false; return; } int u = trie[v].lnk[s1[j] - 'a']; trie[v].lnk[s1[j++] - 'a'] = -1; get_way(u); res.push_back(s1[--j]); } if (trie[v].val){ res.push_back('P'); } for (int i = 0; i < cnt_s; i++ ) { int el = trie[v].lnk[i]; if (el != -1) { res.push_back('-'); get_way(el); res.push_back('a' + i); } } } signed main() { ios_base::sync_with_stdio(0); cin.tie(nullptr); // freopen("input.txt", "r", stdin); int n; cin >> n; for (int i = 0; i < n; i++) { string s; cin >> s; add(s); if (s.size() > s1.size()) { s1 = s; } } get_way(0); reverse(res.begin(), res.end()); for (char el : res) { cout << el << "\n"; } }

Compilation message (stderr)

printer.cpp: In function 'void get_way(int)':
printer.cpp:43:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |         if (j > s1.size()) {
      |             ~~^~~~~~~~~~~
#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...