Submission #522508

#TimeUsernameProblemLanguageResultExecution timeMemory
522508JesusType Printer (IOI08_printer)C++14
90 / 100
1073 ms63904 KiB
#include <bits/stdc++.h> using namespace std; char ans[5000000]; struct arbol{ char letra; int opcion; bool fin_palabra=false; int hijos[28]; }; string mayor; int aux,desocupado=1,valor=1; arbol raices[500002]; void res(int pos, bool rama){ if(pos!=0) { ans[aux]=raices[pos].letra; aux++; } if(raices[pos].fin_palabra==true) { ans[aux]='P'; aux++; } int m=-1; for(int i=0;i<28;i++){ if(raices[pos].hijos[i]!=0){ if(raices[raices[pos].hijos[i]].opcion==valor) { // cout<<pos<<endl; m=i; } else res(raices[pos].hijos[i],false); } } if(pos==0&&m!=-1) res(raices[pos].hijos[m],true); else if(m!=-1) res(raices[pos].hijos[m],rama); if(pos!=0&&rama==false) { ans[aux]='-'; aux++; } } int main() { ios_base::sync_with_stdio();cin.tie(0); int n; cin>>n; string palabra; for(int i=0;i<n;i++){ cin>>palabra; if(palabra.size()>mayor.size()) valor++; aux=0; for(char l:palabra){ if(raices[aux].hijos[l-'a']!=0) aux=raices[aux].hijos[l-'a']; else{ raices[aux].hijos[l-'a']=desocupado; aux=desocupado; raices[aux].letra=l; desocupado++; } if(mayor.size()<palabra.size()) raices[aux].opcion=valor; } if(mayor.size()<palabra.size()) mayor=palabra; raices[aux].fin_palabra=true; } desocupado=0; aux=0; res(0,false); cout<<aux<<endl; for(int i=0;i<aux;i++){ cout<<ans[i]<<endl; } return 0; }
#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...