# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
531374 | yutabi | Type Printer (IOI08_printer) | C++14 | 148 ms | 101512 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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]);
}
}
컴파일 시 표준 에러 (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... |