using
System;
using
System.Collections.Generic;
class
GFG
{
static
int
sz = (
int
) 1e5;
static
List<
int
> []tree =
new
List<
int
>[sz + 1];
static
Boolean []vis =
new
Boolean[sz + 1];
static
int
[]dis =
new
int
[sz + 1];
public
class
pair
{
public
int
first, second;
public
pair(
int
first,
int
second)
{
this
.first = first;
this
.second = second;
}
}
static
void
addEdge(
int
a,
int
b)
{
tree[a].Add(b);
tree[b].Add(a);
}
static
void
bfs(
int
node)
{
Queue<pair> qu =
new
Queue<pair>();
qu.Enqueue(
new
pair(node, 0 ));
dis[0] = 0;
while
(qu.Count != 0)
{
pair p = qu.Peek();
qu.Dequeue();
vis[p.first] =
true
;
foreach
(
int
child
in
tree[p.first])
{
if
(!vis[child])
{
dis[child] = dis[p.first] + 1;
qu.Enqueue(
new
pair(child, p.first));
}
}
}
}
public
static
void
Main(String[] args)
{
for
(
int
i = 0; i < sz + 1; i++)
tree[i] =
new
List<
int
>();
addEdge(0, 1);
addEdge(0, 2);
addEdge(1, 3);
addEdge(2, 4);
addEdge(2, 5);
bfs(0);
int
[]q = { 2, 3 };
for
(
int
i = 0; i < 2; i++)
{
Console.WriteLine(dis[q[i]]);
}
}
}