# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
531373 | yutabi | Type Printer (IOI08_printer) | C++14 | 72 ms | 37656 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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);
printf("%c\n",ord_ch.back()+'a');
}
}
}
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 (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |