제출 #120072

#제출 시각아이디문제언어결과실행 시간메모리
120072BoxworldType Printer (IOI08_printer)C++14
60 / 100
1080 ms34524 KiB
#include <bits/stdc++.h> using namespace std; const int N=500500; struct TREE{int nxt[26];bool end,mk;}tree[N]; string s[N],m,ans=""; int S=0,T=0,n,root=0,fin=0; int newnode(){ T++; memset(tree[T].nxt,-1,sizeof(tree[T].nxt)); return T; } void insert(string x){ int cnr=root; for (int i=0;i<x.length();i++){ int now=x[i]-'a'; if (tree[cnr].nxt[now]==-1)tree[cnr].nxt[now]=newnode(); cnr=tree[cnr].nxt[now]; } tree[cnr].end=1; } void mark(string x){ int cnr=root; for (int i=0;i<x.length();i++){ int now=x[i]-'a'; cnr=tree[cnr].nxt[now]; tree[cnr].mk=1; } } void dfs(int cnr){ if(tree[cnr].end==1)ans+="P\n",S++; int tmp=-1; for (int i=0;i<26;i++) if (tree[cnr].nxt[i]!=-1){ int now=tree[cnr].nxt[i]; if (tree[now].mk!=1){ ans=ans+char(i+'a')+"\n";S++; dfs(now); } else tmp=i; } if (tmp!=-1){ ans=ans+char(tmp+'a')+"\n";S++; dfs(tree[cnr].nxt[tmp]); } if (tmp==-1&&tree[cnr].mk)fin=1; if(!fin)ans+="-\n",S++; } int main(){ cin>>n; memset(tree[0].nxt,-1,sizeof(tree[0].nxt)); for (int i=0;i<n;i++){ cin>>s[i];insert(s[i]); if(s[i].length()>m.length())m=s[i]; } mark(m); dfs(root); cout<<S<<"\n"<<ans; return 0; }

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

printer.cpp: In function 'void insert(std::__cxx11::string)':
printer.cpp:14:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i=0;i<x.length();i++){
               ~^~~~~~~~~~~
printer.cpp: In function 'void mark(std::__cxx11::string)':
printer.cpp:23:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i=0;i<x.length();i++){
               ~^~~~~~~~~~~
#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...