Submission #293580

#TimeUsernameProblemLanguageResultExecution timeMemory
293580kshitij_sodaniType Printer (IOI08_printer)C++14
0 / 100
795 ms37528 KiB
#include <bits/stdc++.h> using namespace std; #define a first #define b second #define pb push_back typedef long long llo; int n; int ma=0; vector<int> ss; int pre[500001][26]; int co=0; vector<pair<int,string>> adj[500001]; int endd[500001]; void insert(string s){ int cur=0; vector<int> kk; for(int i=0;i<s.size();i++){ if(pre[cur][s[i]-'a']==0){ co+=1; pre[cur][s[i]-'a']=co; string te=""; te+=s[i]; adj[cur].pb({co,te}); } kk.pb(cur); cur=pre[cur][s[i]-'a']; } endd[cur]=1; if(s.size()>ma){ ma=s.size(); ss=kk; } } int vis[5000001]; void dfs(int no,string tt=""){ if(no!=0){ cout<<tt<<endl; } if(endd[no]){ cout<<"P"<<endl; } for(auto j:adj[no]){ if(vis[j.a]==0){ dfs(j.a,j.b); } } for(auto j:adj[no]){ if(vis[j.a]==1){ dfs(j.a,j.b); } } if(vis[no]==0 and no!=0){ cout<<"-"<<endl; } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>n; for(int i=0;i<n;i++){ string s; cin>>s; insert(s); } cout<<((co+co-ma+n))<<endl; for(auto j:ss){ vis[j]=1; } dfs(0); return 0; }

Compilation message (stderr)

printer.cpp: In function 'void insert(std::string)':
printer.cpp:19:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |  for(int i=0;i<s.size();i++){
      |              ~^~~~~~~~~
printer.cpp:31:13: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   31 |  if(s.size()>ma){
      |     ~~~~~~~~^~~
#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...