# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
122190 | thebes | Type Printer (IOI08_printer) | C++14 | 170 ms | 51692 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const int MN = 3e4+4, MM = 5e5+5;
string s;
vector<char> mv;
int n, i, t[MM][26], lol[MM], len[MM], nxt, p;
int solve(int p){
int mx=0, nx=-1, r;
for(int i=0;i<26;i++){
if(!t[p][i]) continue;
if(len[t[p][i]]>mx){
mx = len[t[p][i]];
nx = i;
}
}
if(lol[p]) mv.push_back('P');
if(nx==-1) return 0;
for(int i=0;i<26;i++){
if(!t[p][i]||i==nx) continue;
mv.push_back(i+'a');
r = solve(t[p][i])+1;
while(r--) mv.push_back('-');
}
mv.push_back('a'+nx);
r=solve(t[p][nx])+1;
return r;
}
int main(){
for(scanf("%d",&n),i=1;i<=n;i++){
cin >> s; p = 0;
for(auto c : s){
if(!t[p][c-'a']) t[p][c-'a']=++nxt;
p = t[p][c-'a'];
len[p] = max(len[p], (int)s.size());
}
lol[p] = 1;
}
solve(0);
printf("%d\n",mv.size());
for(auto v : mv) printf("%c\n",v);
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |