알고리즘 문제풀이

저울 [백준 10159]

wiojfe 2025. 4. 4. 20:13

https://www.acmicpc.net/problem/10159

 

from collections import deque 
n = int(input())
m = int(input())
gra = [[] for _ in range(n+1)] 
for _ in range(m):
    a,b = map(int, input().split())
    gra[a].append((b,1))# a>b weight 
    gra[b].append((a,-1))

counts = [0]*(n+1) 
def find(start):
    # visi
    q = deque() 
    q.append((start,0))
    while q :
        now,nowway= q.popleft() 
        for nextnode,way in gra[now] :
            if nowway ==0 : 
                visit[nextnode] = 1 
                q.append((nextnode , way)) 
                
            else :
                if nowway*(1) == way and visit[nextnode] == 0 :
                    visit[nextnode] = 1 
                    q.append((nextnode , way)) 
                
            
    
    

for i in range(1,n+1):
    visit = [0]*(n+1) 
    find(i)
    counts[i] = n-1-sum(visit) 
# print(counts)
for i in range(1, n+1) :
    print(counts[i])