#104
Silver I
서현이가 풀지 못한 문제
채점 준비중
시간 제한
1s
메모리 제한
256MB
제출
15
정답
1
맞힌 사람
1
정답 비율
6.7%

문제

ANAGETDON 2025 전날까지 킬러 문제를 만들지 못한 서현이는 결국, 자신이 풀지 못했던 문제를 출제하기로 했다.

서현이는 이 문제를 풀지 못했다. 여러분은 이 문제를 풀 수 있을까?


NN개의 정점으로 이루어진 트리가 주어진다. 각 정점은 11부터 NN까지 번호가 매겨져 있으며, 빨간색 또는 파란색 중 하나로 색칠되어 있다.

이때, 다음 조건을 만족하는 서로 다른 네 정점 쌍 (A,B,C,D)(A, B, C, D)의 경우를 세는 프로그램을 작성해보자.

  • ABCDA-B-C-D는 트리 상의 경로다.
  • 정점들의 색깔 순서는 다음 두 경우 중 하나와 일치해야 한다.
    • 빨간색 - 파란색 - 파란색 - 빨간색
    • 파란색 - 빨간색 - 빨간색 - 파란색

단, (A,B,C,D)(A, B, C, D)와 그의 역순인 (D,C,B,A)(D, C, B, A)는 같은 경우로 본다.

입력

첫째 줄에 정점의 개수 N(1N50000)N(1≤ N≤ 50\,000)이 주어진다.

둘째 줄에는 i(1iN)i(1≤ i≤ N)번째 정점의 색깔이 공백으로 구분되어 주어진다. 00이면 빨간색, 11이면 파란색으로 색칠되어 있다는 의미다.

셋째 줄부터 N1N - 1개의 줄에 걸쳐 간선 정보가 u v(1u,vN;uv)u\ v(1\le u, v\le N; u \ne v)의 형태로 주어진다. uuvv를 잇는 양방향 간선이 존재한다는 의미다.

출력

조건을 만족하는 정점 네 쌍의 경우의 수를 출력한다.

예제 입력 1

5 
0 1 1 1 0
1 2
2 3
4 2
5 4

예제 출력 1

1

가능한 경우는 12451 - 2 - 4 - 5 단 하나다. 54215-4-2-112451 - 2 - 4 - 5는 같은 경우로 보기 때문에 11을 출력한다.

문제를 만든 사람
조서현
알고리즘 분류
코드 제출

이 문제는 현재 제출할 수 없습니다.

이 현상이 잘못되었다고 생각될 경우 관리자한테 문의주세요.

내 제출
제출 내역이 없습니다.
맞은 사람
#순위사용자언어시간메모리코드 길이
4896🥇
안녕하세요저희는20학번최민우와23학번박경서로이루어진팀입니다3인1조팀이지만팀원모집에어려움을겪어두명이서나오게되었습니다두명이라조금불리하겠지만열심히해서수상까지노려보겠습니다감사합니다
C++112ms8024KB1227B
난이도 투표
Silver I1명 투표· 약 2개월 전
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
#사용자문제결과언어시간메모리코드 길이제출 시간
6754
시스템 에러
Java--2752B2026. 05. 23. 09:38
6753
런타임 에러
Python--1017B2026. 05. 23. 09:29
6752
런타임 에러
Python--195B2026. 05. 23. 09:27
6751
런타임 에러
Python--156B2026. 05. 23. 09:26
6750
런타임 에러
PyPy--156B2026. 05. 23. 09:25
6749
런타임 에러
PyPy--1055B2026. 05. 23. 09:17
6748
런타임 에러
PyPy--1073B2026. 05. 23. 09:03