Tree Distance

View as PDF

Submit solution

Points: 1
Time limit: 5.0s
Memory limit: 1G

Author:
Problem type

Problem Statement

You are given a tree with n vertices.

You are also given q queries, each containing two integers u and v representing vertices of the tree. For each query you should output the distance between u and v.

Please do Lowest Common Ancestor II before attempting this. Use Euler Tours to solve this problem.

Input Format

Your first line will contain two space-separated integers n and q. Your next n - 1 lines will contain two space-separated integers each u and v representing an edge from u to v. Your next q lines will contain two space-separated integers each, u and v representing the vertices for which you would like to find the distance of the shortest path between them.

Output Format

For each of the q queries, you should output the shortest distance between u and v.

Constraints

  • 1 \leq n, q \leq 10^5
  • 1 \leq u, v \leq n and u \neq v ## Template
import sys
sys.setrecursionlimit(int(1e9))

n, q = map(int, input().split())
edges = [map(int, input().split()) for _ in range(n - 1)]
queries = [map(int, input().split()) for _ in range(q)]

# REMEMBER TO PASTE SPARSE TABLE TEMPLATE HERE

# print your output

Sample Cases

Input 1
5 6
1 2
2 3
2 4
1 5
2 5
5 2
3 5
3 4
2 3
4 4
Output 1
2
2
3
2
1
0
Input 2
10 10
4 7
7 8
2 4
6 7
8 10
5 8
2 9
3 7
1 9
2 9
6 8
8 9
2 8
8 9
3 8
4 10
5 7
5 6
3 9
Output 2
1
2
4
3
4
2
3
2
3
4

Comments

There are no comments at the moment.