Статья Автор: Сергеев Антон

Хумус

def bfs(start):
    global time, visit
    time = [0] * (n + 1)
    visit = [0] * (n + 1)
    que = [start]
    visit[start] = 1
    while que:
        x = que.pop(0)
        for i in V[x]:
            if visit[i] != 1:
                visit[i] = 1
                que.append(i)
                time[i] = time[x] + 1
    max_dist = max(time)
    farthest = 1
    for j in range(1, n + 1):
        if time[j] == max_dist:
            farthest = j
    return farthest, max_dist

n = int(input())
time = [0] * (n + 1)
visit = [0] * (n + 1)
V = [set() for i in range(n + 1)]

for i in range(n - 1):
    u, v = map(int, input().split())
    V[u].add(v)
    V[v].add(u)
farthest1, _ = bfs(1)
farthest2, diameter_edges = bfs(farthest1)
print(diameter_edges + 1)

def dfs(start):
    Visited[start]=1
    for t in V[start]:
        if Visited[t]==0:
            dfs(t)
f=8
n=int(input())
Visited = [0]*(n)
V = [set() for i in range(n)]
for i in range(n):
    L=list(map(int,input().split()))
    L=L[1:]
    for j in range(len(L)):
        V[i].add(L[j])
dfs(0)
for i in range(n):
    if Visited[i]==0:
        f=9
        break

if f==9:
    print("False")
if f==8:
    print("True")
Загрузка...
Чтобы оставить комментарий, необходимо авторизоваться
💬
Пока нет комментариев. Будьте первым!
Печать