제출 #1210256

#제출 시각아이디문제언어결과실행 시간메모리
1210256WarinchaiType Printer (IOI08_printer)C++20
0 / 100
57 ms62024 KiB
#include<bits/stdc++.h>
using namespace std;
string s[25005];
struct node{
    node *to[30];
    int l[30];
    int ll;
    int cnt;
    node(){
        for(int i=0;i<30;i++)to[i]=NULL,l[i]=0;
        cnt=0;
        ll=0;
    }
};
typedef node* pnode;
pnode rt=NULL;
vector<char>ans;
int tot=0;
int n;
int dfsl(pnode x){
    int mx=0;
    for(int i=0;i<26;i++){
        if(x->to[i]){
            x->l[i]=dfsl(x->to[i]);
            if(x->l[i]>x->l[x->ll])x->ll=i;
            mx=max(mx,x->l[i]);
        }
    }
    return mx+1;
}
void dfs(pnode x){
    for(int i=0;i<x->cnt;i++)cout<<"P\n",tot++;
    for(int i=0;i<26;i++){
        if(i==x->ll)continue;
        if(x->to[i]){
            cout<<(char)(i+'a')<<"\n";
            dfs(x->to[i]);
            cout<<"-\n";
        }
    }
    if(x->to[x->ll]){
        cout<<(char)(x->ll+'a')<<"\n";
        dfs(x->to[x->ll]);
        if(tot!=n)cout<<"-\n";
    }
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++)cin>>s[i];
    pnode rt=new node();
    for(int i=1;i<=n;i++){
        string temp=s[i];
        pnode cur=rt;
        for(char x:temp){
            int val=x-'a';
            if(!cur->to[val])cur->to[val]=new node();
            cur=cur->to[val];
        }
        cur->cnt++;
    }
    dfsl(rt);
    dfs(rt);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...