Submission #1177341

#TimeUsernameProblemLanguageResultExecution timeMemory
1177341rubyscarletType Printer (IOI08_printer)C++20
100 / 100
130 ms60016 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define el "\n" #define crispy \ ios_base::sync_with_stdio(0); \ cin.tie(0); \ cout.tie(0); int n; int nn = 0; struct Node { bool end = 0; int count = 0; int arr[26]{}; int rem = -1; }; queue<char>ans; vector<Node> trie(1); void buildTrie(string &s) { int cur = 0; for (int i = 0; i < s.size(); i++) { int temp = s[i] - 'a'; if (!trie[cur].arr[temp]) { trie[cur].arr[temp] = trie.size(); trie.emplace_back(); } cur = trie[cur].arr[temp]; trie[cur].count++; trie[cur].rem = max(trie[cur].rem,int(s.size() - i)); } trie[cur].end = 1; } void trieTraversal(int cur = 0){ if(trie[cur].end) nn--,ans.emplace('P'); vector<pair<int,pair<int,int>>>idRem; for(int i = 0; i < 26; i++){ if(~trie[trie[cur].arr[i]].rem){ idRem.push_back({trie[trie[cur].arr[i]].rem,{i,trie[cur].arr[i]}}); } } sort(idRem.begin(),idRem.end()); for(auto it : idRem){ ans.emplace(char(it.second.first +'a')); trieTraversal(it.second.second); if(nn) ans.emplace('-'); } } void scarlet() { cin>>n; nn=n; for(int i = 0 ; i < n;i++){ string s; cin>>s; buildTrie(s); } trieTraversal(); cout<<ans.size()<<el; while(!ans.empty()){ cout<<ans.front()<<el; ans.pop(); } } int main() { // crispy ; int t = 1; // cin >> t; while (t--) { scarlet(); } }
#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...