[BOJ 13516] 트리와 쿼리 7
View as PDF
Submit solution
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
Points:
6
Time limit:
2.0s
Memory limit:
512M
Problem types
Allowed languages
N개의 정점으로 이루어진 트리(무방향 사이클이 없는 연결 그래프)가 있다. 정점은 1번부터 N번까지 번호가 매겨져 있고, 간선은 1번부터 N-1번까지 번호가 매겨져 있다. 정점의 색은 검정색 또는 흰색이며 가중치를 가지고 있다.</p>
아래의 세 쿼리를 수행하는 프로그램을 작성하시오.
1 i: i번 정점의 색을 바꾼다. (흰색 -> 검정색, 검정색 -> 흰색)2 u: u와 연결된 정점 v 중에서 가중치가 가장 큰 것을 구해 출력한다. 두 정점이 연결되었다는 것은 두 정점을 연결하는 경로상의 모든 정점의 색이 같다는 것을 의미한다. 이때, u와 v는 같을 수도 있다.3 u w: u번 정점의 가중치를 w로 바꾼다.
첫째 줄에 N (2 ≤ N ≤ 100,000)이 주어진다.
둘째 줄부터 N-1개의 줄에는 i번 간선이 연결하는 두 정점 번호 u와 v가 주어진다.
다음 줄에는 1번 정점부터 N번 정점까지 색이 주어진다. 색은 0 또는 1이며, 0은 검정색, 1은 흰색을 나타낸다. 그 다음 줄에는 각 정점의 가중치가 1번 정점부터 순서대로 주어진다.
다음 줄에는 쿼리의 개수 M (1 ≤ M ≤ 100,000)이 주어진다.
다음 M개의 줄에는 쿼리가 한 줄에 하나씩 주어진다.
모든 가중치는 109보다 작거나 같은 자연수이다.
출력 형식
각각의 2번 쿼리의 결과를 순서대로 한 줄에 하나씩 출력한다.
예제 입력 1
5
1 2
1 3
1 4
1 5
0 1 1 1 1
1 2 3 4 5
3
2 1
1 1
2 1
예제 출력 1
1
5
예제 입력 2
7
1 2
1 3
2 4
2 5
3 6
3 7
0 0 0 0 0 0 0
1 2 3 4 5 6 7
4
2 1
1 1
2 2
2 3
예제 출력 2
7
5
7
Comments