제출 #1348733

#제출 시각아이디문제언어결과실행 시간메모리
1348733khangai11Type Printer (IOI08_printer)C++20
10 / 100
160 ms39780 KiB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
vector<char> v;
int D=0,n;
class TrieNode{
	public:
		TrieNode* par=nullptr;
		TrieNode* children[26];
		ll c=0;
		TrieNode(){
			for(int a=0;a<26;a++){
				children[a]=nullptr;
			}
		}
};
class Trie{
	private:
		TrieNode* root;
	public:
		Trie(){
			root=new TrieNode();
		}
	void aa(string s){
		TrieNode* node=root;
		for(auto z:s){
			int i=z-'a';
			if(node->children[i]==nullptr){
				node->children[i]=new TrieNode();
			}
			node->children[i]->par=node;
			node=node->children[i];
		}
		node->c++;
	}
	void dfs(TrieNode* node){
		if(node->c==1){
			v.push_back('P');
			D++;
			if(D==n){
				return;
			}
		}
		for(int a=0;a<26;a++){
			if(node->children[a]!=nullptr){
				v.push_back('a'+a);
				dfs(node->children[a]);
				if(D==n){
					return;
				}
			}
		}
		v.push_back('-');
	}
	void bb(){
		TrieNode* node=root;
		dfs(node);
	}
};
void solve(){
	cin>>n;
	vector<string> s(n);
	Trie trie;
	for(int a=0;a<n;a++){
		cin>>s[a];
		trie.aa(s[a]);
	}
	trie.bb();
	cout<<v.size()<<endl;
	for(auto z:v){
		cout<<z<<endl;
	}
}
signed main(){
	ios::sync_with_stdio();
	cin.tie(0);
	cout.tie(0);
//	freopen("a.in", "r", stdin);
//	freopen("a.out", "w", stdout);
	ll t=1;
//	cin>>t;
	for(ll a=0;a<t;a++){
		solve();
	}
}
#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...