제출 #522496

#제출 시각아이디문제언어결과실행 시간메모리
522496JesusType Printer (IOI08_printer)C++14
10 / 100
429 ms61848 KiB
#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; }

컴파일 시 표준 에러 (stderr) 메시지

printer.cpp: In function 'void res(int, bool)':
printer.cpp:33:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |             if(desocupado<mayor.size()&&raices[raices[pos].hijos[i]].letra==mayor[desocupado]) {
      |                ~~~~~~~~~~^~~~~~~~~~~~~
#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...