만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

트리 불 끄기

시간 제한2초메모리 제한1024 MB

요약
나무 모양 그래프에서 밥이 정점을 떠날 때마다 그 정점의 전구를 뒤집으며 시작점 a에서 모든 전구를 4N번 이내로 끄는 경로를 찾습니다.
난이도

어려움10점 중 8점

유형
트리, DFS, 구현, 그리디
정답자
아직 제출이 없습니다

문제

NN개의 정점으로 이루어진 트리가 있다. 트리는 간선에 방향이 없는 연결 그래프이며, 임의의 두 정점을 잇는 최단 경로가 하나뿐이다. 각 정점에는 전구와 스위치가 있다. 전구는 켜져 있거나 꺼져 있으며, 정점의 스위치를 누르면 그 정점의 전구 상태가 바뀐다. 켜진 전구는 꺼지고, 꺼진 전구는 켜진다.

밥은 이 트리에 사는 나무늘보이다. 밥은 처음에 aa번 정점에 있으며, 다음 절차를 0번 이상 수행해 트리의 전구를 모두 꺼진 상태로 만들려고 한다.

  • 밥이 vv번 정점에 있다고 하자. vv번 정점과 인접한 uu번 정점을 고른 뒤, vv번 정점의 스위치를 누르고 uu번 정점으로 이동한다.

밥을 도와 위 절차를 4N4N번 이하로 수행해 트리의 전구를 모두 꺼진 상태로 만들 수 있는 방법을 찾아 주자. 이러한 방법이 항상 존재함은 문제의 조건에서 증명할 수 있다.

입력

첫 번째 줄에 정점의 개수 NN과 밥이 처음에 위치한 정점의 번호 aa가 공백으로 구분되어 주어진다. (2≤N≤100 0002 \le N \le 100\,000; 1≤a≤N1 \le a \le N)

두 번째 줄에 전구의 상태를 나타내는 길이 nn의 문자열 SS가 주어진다. ii번 정점의 전구가 켜져 있으면 ii번째 문자는 \tt{'1'}이고, 꺼져 있으면 \tt{'0'}이다.

세 번째 줄부터 N−1N-1개의 줄에 걸쳐 각 간선이 연결하는 두 정점의 번호 xix_i, yiy_i가 공백으로 구분되어 주어진다. (1≤xi<yi≤N1 \le x_i < y_i \le N)

주어진 그래프는 올바른 트리임이 보장된다.

출력

첫 번째 줄에 수행할 절차의 횟수 kk를 출력한다. (0≤k≤4N0 \le k \le 4N)

두 번째 줄에 각 절차에서 선택한 정점을 나타내는 kk개의 정수 u1,u2,⋯ ,uku_1, u_2, \cdots, u_k를 공백으로 구분해 출력한다. u1u_1번 정점은 aa번 정점과 인접해야 하며, 2≤i≤k2 \le i \le k인 모든 ii에 대해 uiu_i번 정점은 ui−1u_{i-1}번 정점과 인접해야 한다.

전구를 모두 꺼진 상태로 만드는 방법이 여러 가지라면 그중 하나만 출력한다. 수행하는 절차의 수가 최소일 필요는 없다.

힌트

예제에서 밥이 따르는 절차와 그에 따른 전구의 상태는 아래와 같다.

  1. 밥이 u=3u=3번 정점으로 이동하고, v=4v=4번 정점의 전구가 꺼진다.
  2. 밥이 u=2u=2번 정점으로 이동하고, v=3v=3번 정점의 전구가 꺼진다.
  3. 밥이 u=1u=1번 정점으로 이동하고, v=2v=2번 정점의 전구가 켜진다.
  4. 밥이 u=2u=2번 정점으로 이동하고, v=1v=1번 정점의 전구가 꺼진다.
  5. 밥이 u=3u=3번 정점으로 이동하고, v=2v=2번 정점의 전구가 꺼진다.
  6. 밥이 u=5u=5번 정점으로 이동하고, v=3v=3번 정점의 전구가 켜진다.
  7. 밥이 u=3u=3번 정점으로 이동하고, v=5v=5번 정점의 전구가 켜진다.
  8. 밥이 u=5u=5번 정점으로 이동하고, v=3v=3번 정점의 전구가 꺼진다.
  9. 밥이 u=3u=3번 정점으로 이동하고, v=5v=5번 정점의 전구가 꺼진다.
  10. 밥이 u=6u=6번 정점으로 이동하고, v=3v=3번 정점의 전구가 켜진다.
  11. 밥이 u=3u=3번 정점으로 이동하고, v=6v=6번 정점의 전구가 꺼진다.
  12. 밥이 u=4u=4번 정점으로 이동하고, v=3v=3번 정점의 전구가 꺼진다.

총 12번의 절차를 수행했으며, 절차가 끝난 뒤 트리의 전구는 모두 꺼진 상태이다.

예제1

  1. 예제 1

    입력
    6 4
    101101
    1 2
    2 3
    3 4
    3 5
    3 6
    
    예상 출력
    12
    3 2 1 2 3 5 3 5 3 6 3 4