update
This commit is contained in:
		
							parent
							
								
									dd20cc9fd8
								
							
						
					
					
						commit
						2d3a3ce03b
					
				
							
								
								
									
										38
									
								
								src/P5658/P5658.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								src/P5658/P5658.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					#include <iostream>
 | 
				
			||||||
 | 
					#include <stack>
 | 
				
			||||||
 | 
					#include <string>
 | 
				
			||||||
 | 
					#include <vector>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using ll = long long;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const ll max_n = 5e5;
 | 
				
			||||||
 | 
					ll n, father;
 | 
				
			||||||
 | 
					std::string s;
 | 
				
			||||||
 | 
					std::vector<ll> son[max_n];
 | 
				
			||||||
 | 
					char c[max_n];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void dfs(const ll now, const std::stack<char> &parenthesis){
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    for(const auto i:son[now]){
 | 
				
			||||||
 | 
					        auto new_parenthesis = parenthesis;
 | 
				
			||||||
 | 
					        new_parenthesis.push(c[i]);
 | 
				
			||||||
 | 
					        dfs(i, new_parenthesis);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int main(){
 | 
				
			||||||
 | 
					    std::cin>>n;
 | 
				
			||||||
 | 
					    std::cin>>s;
 | 
				
			||||||
 | 
					    for(ll i{1};i<=n;i++){
 | 
				
			||||||
 | 
					        c[i]=s[i-1];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    for(ll i{2};i<=n;i++){
 | 
				
			||||||
 | 
					        std::cin>>father;
 | 
				
			||||||
 | 
					        son[father].push_back(i);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    std::stack<char> first_parenthesis;
 | 
				
			||||||
 | 
					    first_parenthesis.push(c[1]);
 | 
				
			||||||
 | 
					    dfs(1, first_parenthesis);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user