제출 #1195126

#제출 시각아이디문제언어결과실행 시간메모리
1195126KindaGoodGamesType Printer (IOI08_printer)C++20
100 / 100
153 ms69104 KiB
#include<bits/stdc++.h> #define ll long long #define pii pair<int,int> #define tiii tuple<int,int,int> using namespace std; struct TrieNode{ bool marked; int depth = 0; int height = 0; vector<int> child; TrieNode(){ child.resize(26, -1); marked = false; } }; vector<TrieNode> trie; int cnt = 0; string res = ""; void insert(string& s, int i = 0, int ind = 0){ if(i == s.size()){ trie[ind].marked = true; return; } int c = trie[ind].child[s[i]-'a']; if(c == -1){ trie[ind].child[s[i]-'a'] = trie.size(); trie.push_back(TrieNode()); c = trie[ind].child[s[i]-'a']; trie[c].depth = trie[ind].depth+1; } insert(s,i+1,c); trie[ind].height = max(trie[c].height+1, trie[ind].height); } void add(char c){ res += c; cnt++; } void trav(int ind = 0){ if(trie[ind].marked){ add('P'); } vector<tiii> choices; for(int i = 0; i < 26; i++){ int c = trie[ind].child[i]; if(c == -1){ continue; } choices.push_back({trie[c].height, c, i}); } sort(choices.begin(),choices.end()); for(auto p : choices){ int h,c,i; tie(h,c,i) = p; add('a'+i); trav(c); add('-'); } } int main(){ trie.push_back(TrieNode()); int n; cin >> n; for(int i = 0; i < n; i++){ string s; cin >> s; insert(s); } trav(0); while(res.back() == '-'){ res.pop_back(); cnt--; } cout << cnt <<endl; for(int i = 0; i < res.size(); i++){ cout << res[i] << "\n"; } }
#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...