noeffserv   1년 전

알고리즘은 이렇습니다.


1. dfs 함수로 위원회를 구별합니다. teamn 이 위원회의 개수이고 team[i] 벡터에는 위원회 i 에 해당하는 팀원들이 저장됩니다.


2. bfs 함수로 전달시간을 구합니다. 전달시간을 저장하는 공간은 cnt[][] 배열입니다.

예를 들어, 1번과 3번이 같은 위원회일때,

cnt[1][3] = cnt[3][1] = "1번과 3번 사이의 전달시간" 이 됩니다.


3. 다음 각 위원회에 대해서 전달시간의 최댓값이 최소가 되도록하는 리더를 cnt 배열을 이용해서 구하고

ans 벡터에 저장합니다.


4. 정답을 오름차순으로 출력해야하므로 ans 정렬합니다. 다음 출력합니다.


다른 문제를 풀며 기력회복을 하고싶습니다. 이 문제에서 벗어나게 해주세요.

댓글을 작성하려면 로그인해야 합니다.