Родинне дерево


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type

В давні часи в королівстві було велике дерево, яке символізувало родинні зв'язки між мешканцями королівства. Це дерево складалося з n вершин та n1 ребра. Кожна вершина дерева представляє одного жителя королівства, а кожне ребро - родинний зв'язок між двома жителями.

Задача полягає у визначенні родинних зв'язків між мешканцями королівства. Для кожного з q запитів вам потрібно визначити, чи є один мешканець королівства предком іншого в цьому дереві.

Input Specification

Перший рядок містить два цілі числа n та q - кількість вершин у дереві та кількість запитів відповідно (1n,q105).

Наступні n1 рядків містять по два цілі числа u та v , що означає існування ребра між вершинами u та v (1u,vn). Це ребро вказує на те, що між жителями існує прямий родинний зв'язок.

Наступні q рядків містять по два цілі числа a та b - вершини, для яких потрібно перевірити, чи є a предком b (1a,bn).

Output Specification

Для кожного запиту виведіть "Yes", якщо вершина a є предком вершини b, і "No" в іншому випадку.

Sample Input 1

Copy
5 3
1 2
1 3
3 4
3 5
1 4
3 5
2 4

Sample Output 1

Copy
YES
YES
NO

Comments

There are no comments at the moment.