Submission #1206050

#TimeUsernameProblemLanguageResultExecution timeMemory
1206050leandropinaType Printer (IOI08_printer)C++20
10 / 100
45 ms23624 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define NMAX 100005 #define int long long #define pii pair<int,int> #define tt tuple<int,int,int> #define INF 1e18 #define MOD 1000000007 #define faster ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define ost tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> #define LSB(x) ((x)&-(x)) #define count_bits(x) __builtin_popcount(x) #define leading_zeros(x) __builtin_clz(x) #define trailing_zeros(x) __builtin_ctz(x) #define all(x) begin(x),end(x) #define pb push_back #define eps 1e-9 struct node{ int id; map<char,int>next; node(){ id = -1; next.clear(); } }; vector<node>tri={node()}; int new_node(){ tri.pb(node()); return tri.size()-1; } void insere(string &s, int i){ int x = 0; for(auto ch:s){ if(tri[x].next.count(ch)==0){ tri[x].next[ch] = new_node(); } x = tri[x].next[ch]; } tri[x].id = i; } string ans=""; void solve(int x){ if(tri[x].id != -1){ ans.pb('P'); } vector<pair<int,char>>v; for(auto [ch,next_ind]:tri[x].next){ v.pb({next_ind,ch}); } sort(all(v)); for(auto [next_ind,ch]:v){ ans.pb(ch); solve(next_ind); ans.pb('-'); } } bool comp(string a, string b){ return a.size() < b.size(); } int32_t main(){ faster int n; cin >> n; vector<string>v; for(int i=0;i<n;i++){ string s; cin >> s; v.pb(s); } sort(all(v),comp); for(int i=0;i<n;i++){ insere(v[i],i); } solve(0); while(ans.back()=='-') ans.pop_back(); cout << ans.size() << '\n'; for(auto ch:ans) cout << ch << '\n'; } /* 7 bb print the poem they tt poke nina começa n strings m strings */
#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...