제출 #799141

#제출 시각아이디문제언어결과실행 시간메모리
799141yeediotType Printer (IOI08_printer)C++14
0 / 100
40 ms33820 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define F first #define S second #define all(x) x.begin(),x.end() #define pii pair<int,int> #define pb push_back #define sz(x) (int)(x.size()) #define chmin(x,y) x=min(x,y) #define chmax(x,y) x=max(x,y) #define vi vector<int> #define vp vector<pii> #define vvi vector<vi> const int mxn=25005; const int ascii=26; int t[mxn*ascii][ascii]; int nxt=1; vector<string>s; vector<vector<char>>op(26); int mxlen[26]; void add(string s){ int i=0,v=0; while(i<sz(s)){ if(t[v][s[i]-'a']){ v=t[v][s[i++]-'a']; } else{ v=t[v][s[i++]-'a']=nxt++; } } } int ans=0; void dfs(int v,int cnt){ bool used=0; for(int i=0;i<26;i++){ if(t[v][i]){ used=1; if(v==0){ op[i].pb(i+'a'); ans++; dfs(t[v][i],i); op[i].pb('-'); ans++; } else{ op[cnt].pb(i+'a'); ans++; dfs(t[v][i],cnt); op[cnt].pb('-'); ans++; } } } if(!used){ op[cnt].pb('P'); ans++; } } signed main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); int n; cin>>n; pii mx={0,0}; for(int i=0;i<n;i++){ string temp; cin>>temp; add(temp); chmax(mxlen[temp[0]-'a'],sz(temp)); mx=max(mx,{mxlen[temp[0]-'a'],temp[0]-'a'}); } dfs(0,-1); cout<<ans-mx.F<<'\n'; for(int i=0;i<26;i++){ //if(i==mx.S)continue; for(auto j:op[i]){ cout<<j<<'\n'; } } for(int i=0;i<sz(op[mx.S])-mx.F;i++){ //cout<<op[mx.S][i]<<'\n'; } } /* input: */
#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...