# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
226154 | 2020-04-22T16:42:50 Z | inluminas | Type Printer (IOI08_printer) | C++14 | 750 ms | 18780 KB |
#include<bits/stdc++.h> using namespace std; const int lmt=1e6; int adj[lmt][26]; bool vis[lmt]; int subtree[lmt]; int indx=1; int cnt=0; string ans; void insert(string s,int now) { for(char c:s) { int num=c-'a'; if(adj[now][num]==0) { indx++; adj[now][num]=indx; now=indx; } else { now=adj[now][num]; } } } void getsubtree(int u) { subtree[u]=1; for(int i=0;i<26;i++) { if(adj[u][i]!=0) { int v=adj[u][i]; getsubtree(v); subtree[u]+=subtree[v]; } } } void dfs(int u) { if(vis[u]==0) { cnt++; vis[u]=1; } vector<pair<int,int>>p; for(int i=0;i<26;i++) { if(adj[u][i]!=0) { p.push_back(make_pair(subtree[adj[u][i]],i)); } } sort(p.begin(),p.end()); for(int i=0;i<p.size();i++) { char c='a'+p[i].second; ans+=c; int v=adj[u][p[i].second]; dfs(v); } if(p.empty()) ans+='P'; if(cnt<indx) ans+='-'; } int main() { //#ifndef ONLINE_JUDGE // freopen("take.in","r",stdin); // freopen("give.out","w",stdout); //#endif int n; cin>>n; for(int i=1;i<=n;i++) { string s; cin>>s; insert(s,1); } getsubtree(1); dfs(1); cout<<ans.size()<<endl; for(char c:ans) { cout<<c<<endl; } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 384 KB | Output is correct |
2 | Correct | 5 ms | 384 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 384 KB | Output is correct |
2 | Correct | 5 ms | 384 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 5 ms | 384 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 384 KB | Output is correct |
2 | Incorrect | 5 ms | 384 KB | didn't print every word |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 7 ms | 384 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 35 ms | 1152 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 118 ms | 3256 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 305 ms | 7688 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 750 ms | 18780 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 574 ms | 14868 KB | didn't print every word |
2 | Halted | 0 ms | 0 KB | - |