# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
522496 | 2022-02-05T05:19:41 Z | Jesus | Type Printer (IOI08_printer) | C++14 | 429 ms | 61848 KB |
#include <bits/stdc++.h> using namespace std; char ans[5000000]; struct arbol{ char letra; int palabra_mayor; bool fin_palabra=false; int hijos[28]; }; string mayor; int aux,desocupado=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(desocupado<mayor.size()&&raices[raices[pos].hijos[i]].letra==mayor[desocupado]) { m=i; desocupado++; } 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()) mayor=palabra; 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++; } } 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; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 22 ms | 60876 KB | Output is correct |
2 | Correct | 23 ms | 60944 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 21 ms | 60900 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 22 ms | 60888 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 22 ms | 60956 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 26 ms | 60856 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 42 ms | 60968 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 86 ms | 61092 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 189 ms | 61272 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 429 ms | 61848 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 350 ms | 61688 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |