# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
531374 | 2022-02-28T14:34:10 Z | yutabi | Type Printer (IOI08_printer) | C++14 | 148 ms | 101512 KB |
#include <bits/stdc++.h> using namespace std; #define pb push_back struct node { node* child[26]; bool en_buyuk; bool count; node() { for(int i=0;i<26;i++) { child[i]=NULL; en_buyuk=0; count=0; } } }; int n; vector <string> str; int maxi; int ptr; node start; node* curr; vector <char> ans; void DFS(node* nd) { if(nd->count) { ans.pb('P'); } vector <node*> ord; node* mx=NULL; vector <char> ord_ch; char mx_ch; for(int i=0;i<26;i++) { if(nd->child[i]!=NULL) { if(nd->child[i]->en_buyuk) { mx=nd->child[i]; mx_ch=i; } else { ord.pb(nd->child[i]); ord_ch.pb(i); } } } if(mx!=NULL) { ord.pb(mx); ord_ch.pb(mx_ch); } for(int i=0;i<ord.size();i++) { ans.pb(ord_ch[i]+'a'); DFS(ord[i]); } if(nd->en_buyuk==0) { ans.pb('-'); } } int main() { cin >> n; str=vector <string> (n); for(int i=0;i<n;i++) { cin >> str[i]; if(str[i].size()>maxi) { maxi=str[i].size(); ptr=i; } } start.en_buyuk=1; for(int i=0;i<n;i++) { curr=&start; for(int j=0;j<str[i].size();j++) { if(curr->child[str[i][j]-'a']==NULL) { node *nw = new node; curr->child[str[i][j]-'a']=nw; } curr=curr->child[str[i][j]-'a']; if(j+1==str[i].size()) { curr->count=1; } if(i==ptr) { curr->en_buyuk=1; } } } DFS(&start); printf("%lu\n",ans.size()); for(int i=0;i<ans.size();i++) { printf("%c\n",ans[i]); } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 204 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 204 KB | Output is correct |
2 | Correct | 1 ms | 280 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 204 KB | Output is correct |
2 | Correct | 0 ms | 284 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 332 KB | Output is correct |
2 | Correct | 1 ms | 204 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 332 KB | Output is correct |
2 | Correct | 2 ms | 1100 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 1740 KB | Output is correct |
2 | Correct | 4 ms | 2220 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 11 ms | 5964 KB | Output is correct |
2 | Correct | 20 ms | 12744 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 26 ms | 15012 KB | Output is correct |
2 | Correct | 14 ms | 3888 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 61 ms | 37132 KB | Output is correct |
2 | Correct | 130 ms | 85448 KB | Output is correct |
3 | Correct | 72 ms | 44956 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 49 ms | 29244 KB | Output is correct |
2 | Correct | 148 ms | 101512 KB | Output is correct |
3 | Correct | 81 ms | 50884 KB | Output is correct |
4 | Correct | 133 ms | 95936 KB | Output is correct |