Submission #1268495

#TimeUsernameProblemLanguageResultExecution timeMemory
1268495juan_alejandroKartomat (COCI17_kartomat)C++20
0 / 80
1 ms840 KiB
#include <bits/stdc++.h> #include <memory> #pragma GCC optimize("O2") #define endl '\n' #define int long long using namespace std; //lo codeare desde 0 para que no me esten questionando struct Trie{ vector<unique_ptr<Trie>> letras; Trie():letras(26){} void insert(const string &s) { Trie* nodo=this; for(const auto &c:s) { int idx=c-'A'; if(!nodo->letras[idx]) nodo->letras[idx]=make_unique<Trie>(); nodo=nodo->letras[idx].get(); } } vector<char> query(const string &s) { vector<char> res; Trie* nodo=this; for(const auto &c:s) { int idx=c-'A'; if(!nodo->letras[idx]) nodo->letras[idx]=make_unique<Trie>(); nodo=nodo->letras[idx].get(); } for(int i=0;i<26;i++) if(nodo->letras[i]) res.push_back(i+'A'); return res; } }; int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cout.precision(0); cout<<fixed; int n; cin>>n; map<char,bool> o; auto x=make_unique<Trie>(); for(int i=0;i<n;i++) { string s; cin>>s; x->insert(s); } string s; cin>>s; vector<char> res=x->query(s); for(const auto &e:res) o[e]=true; int c=0; for(int i=0;i<4;i++) { for(int j=0;j<8;j++) { c++; if(c-3>=0&&c-3<26&&o[(c-3)+'A']) {char ress=c-3+'A';cout<<ress;}else cout<<'*'; }cout<<endl; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...