Submission #57729

#TimeUsernameProblemLanguageResultExecution timeMemory
57729vexType Printer (IOI08_printer)C++14
100 / 100
210 ms98788 KiB
#include <bits/stdc++.h> #define MAXN 25005 #define ALPH 26 using namespace std; int br=1; struct Node{ bool in; bool kraj; struct Node* deca[ALPH]; }* head; void init() { head=new Node(); head->kraj=false; head->in=false; } void ubaci(string s) { Node* curr=head; for(int i=0;i<s.size();i++) { int zn=s[i]-'a'; if(curr->deca[zn]==NULL) { curr->deca[zn]=new Node(); curr->deca[zn]->kraj=false; curr->deca[zn]->in=false; br++; } curr=curr->deca[zn]; } curr->kraj=true; } int maxx=0; string naj; void sredi() { Node* curr=head; curr->in=true; for(int i=0;i<maxx;i++) { int zn=naj[i]-'a'; curr=curr->deca[zn]; curr->in=true; } } void ispisi(Node* v) { if(v->kraj)cout<<"P"<<"\n"; int ind=-1; for(int i=0;i<ALPH;i++)if(v->deca[i]!=NULL) { Node* nv=v->deca[i]; if(nv->in)ind=i; else { cout<<char('a'+i)<<"\n"; ispisi(nv); cout<<"-"<<"\n"; } } if(ind!=-1) { cout<<char('a'+ind)<<"\n"; ispisi(v->deca[ind]); } } int n; string x; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); init(); cin>>n; for(int i=0;i<n;i++) { cin>>x; ubaci(x); if( x.size() > maxx ){ maxx = x.size(); naj = x; } } sredi(); cout<<2*br-2+n-maxx<<"\n"; ispisi(head); return 0; }

Compilation message (stderr)

printer.cpp: In function 'void ubaci(std::__cxx11::string)':
printer.cpp:22:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0;i<s.size();i++)
                 ~^~~~~~~~~
printer.cpp: In function 'int main()':
printer.cpp:87:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if( x.size() > maxx ){
             ~~~~~~~~~^~~~~~
#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...