제출 #1313957

#제출 시각아이디문제언어결과실행 시간메모리
1313957algoproclubType Printer (IOI08_printer)C++20
100 / 100
97 ms71776 KiB
// UUID: 55a0e178-e0d8-4cc0-a388-1d2d5ff4eb80 #include <bits/stdc++.h> using namespace std; vector<vector<int>> trie(25000*20+1, vector<int>(26, -1)); vector<bool> last(25000*20+1, false); vector<bool> iswordend(25000*20+1, false); vector<char> ops; int nodes = 0; void insert(string s, bool l){ int node = 0; for(char c : s){ if (trie[node][c-'a'] == -1) trie[node][c-'a'] = ++nodes; node = trie[node][c-'a']; last[node] = l || last[node]; } iswordend[node] = true; } void dfs(int node){ if(iswordend[node]) ops.push_back('P'); int thelast = -1; for(int i = 0; i < 26; i++) { if (trie[node][i] == -1) continue; if(last[trie[node][i]]) { thelast = i; continue; } ops.push_back((char) i + 'a'); dfs(trie[node][i]); ops.push_back('-'); } if (thelast != -1) { ops.push_back((char) thelast + 'a'); dfs(trie[node][thelast]); } } void solve() { int n; cin >> n; vector<string> s(n); string m = ""; for(int i = 0; i < n; i++) { cin >> s[i]; if (m.size() < s[i].size()) m = s[i]; } for (int i = 0; i < n; i++) { insert(s[i], s[i] == m); } dfs(0); for(int i = ops.size()-1; i >= 0; i--) { if (ops[i] != '-') break; ops.pop_back(); } cout << ops.size() << "\n"; for (char i : ops) cout << i << "\n"; return; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t = 1; //cin >> t; while (t--) { solve(); } return 0; }
#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...