# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
985282 | 2024-05-17T14:28:01 Z | roctes7 | Type Printer (IOI08_printer) | C++17 | 129 ms | 262144 KB |
#include<bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define fastio \ ios_base::sync_with_stdio(false); \ cin.tie(NULL); const double eps = 1e-6; const int MAX = 3e6+3; int adj[MAX][30]; int num[MAX]; int level[MAX]; int mx_level[MAX]; bool has[MAX]; int nex = 1; void init(){ memset(adj,-1,sizeof adj); } void add(string s){ int i = 0, v = 0; while(i < s.size()){ if(adj[v][s[i]-'a'] == -1) v = adj[v][s[i++]-'a'] = nex++; else v = adj[v][s[i++]-'a']; } has[v] = true; num[v]++; } void dfs(int u,int d){ level[u] = d; for(char c='a';c<='z';c++)if(adj[u][c-'a']!=-1){ dfs(adj[u][c-'a'],d+1); } } void dfs_mx(int u){ if(has[u])mx_level[u] = level[u]; for(char c='a';c<='z';c++)if(adj[u][c-'a']!=-1){ dfs_mx(adj[u][c-'a']); mx_level[u] = max(mx_level[u],mx_level[adj[u][c-'a']]); } } vector<char> ans; void dfs_ans(int u){ if(has[u])ans.push_back('P'); int mx = -1; int ind = -1; for(char c='a';c<='z';c++)if(adj[u][c-'a']!=-1)if(mx_level[adj[u][c-'a']]>0){ if(mx_level[adj[u][c-'a']]>mx){ mx = mx_level[adj[u][c-'a']]; ind = adj[u][c-'a']; } } for(char c='a';c<='z';c++)if(adj[u][c-'a']!=-1)if(mx_level[adj[u][c-'a']]>0)if(adj[u][c-'a']!=ind){ ans.push_back(c); dfs_ans(adj[u][c-'a']); } for(char c='a';c<='z';c++)if(adj[u][c-'a']!=-1)if(mx_level[adj[u][c-'a']]>0)if(adj[u][c-'a']==ind){ ans.push_back(c); dfs_ans(adj[u][c-'a']); } ans.push_back('-'); } int main(){ fastio; //freopen("output.txt","w",stdout); init(); int n; cin>>n; for(int i=0;i<n;i++){ string s; cin>>s; add(s); } dfs(0,0); dfs_mx(0); dfs_ans(0); while(ans.back()=='-')ans.pop_back(); cout<<ans.size()<<endl; for(auto a:ans)cout<<a<<endl; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 129 ms | 262144 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 41 ms | 262144 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 37 ms | 262144 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 39 ms | 262144 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 39 ms | 262144 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 42 ms | 262144 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 41 ms | 262144 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 37 ms | 262144 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 37 ms | 262144 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 39 ms | 262144 KB | Execution killed with signal 9 |
2 | Halted | 0 ms | 0 KB | - |