두 정점 삭제 다시
시간 제한6초메모리 제한512 MB
연결된 그래프에서 간선마다 두 끝점을 모두 지웠을 때 나머지 그래프가 연결되어 있는지 판정하여 이진 문자열로 출력합니다.
문제
몇 년 전 같은 저자가 학교 대회에 다음 문제를 냈다. 최소 차수가 이상인 연결된 무방향 그래프에서 인접한 두 정점을 삭제하되, 연결성은 유지하는 문제였다. 그 문제는 2020년 학생 대회에는 너무 쉬워서, 이번에는 더 어려운 문제를 준비했다.
정점이 개 이상인 연결된 무방향 그래프가 주어진다. 자기 루프와 다중 간선은 없다. 각 간선에 대해, 그 간선의 두 끝점을 모두 삭제했을 때 그래프가 연결된 상태를 유지하는지 판단하라.
그래프는 차수가 인 정점을 포함할 수 있다. 하지만 연결되어 있고 정점이 개 이상이므로 차수가 인 정점은 없다.
입력
첫 줄에 정점 수 과 간선 수 이 주어진다 (, ). 이어지는 개의 줄에서 번째 줄에는 번째 간선의 두 끝점 와 가 공백으로 구분되어 주어진다 (, ). 그래프는 연결되어 있고 다중 간선이 없다.
출력
길이가 인 이진 문자열을 출력한다. 번째 문자는 번째 간선의 두 끝점을 삭제했을 때 그래프가 끊어지면 "0", 그렇지 않으면 "1"이다.
힌트
간선만 지워지는 것이 아니라 두 끝점이 모두 삭제된다는 점에 주의하라. 따라서 이 문제는 다리(bridge)를 찾는 문제와 다르다.
예를 들어 예제에서 간선 -는 다리가 아니다. 하지만 정점 과 를 삭제하면 그래프가 끊어진다. 남은 정점은 고립된 과 뿐이기 때문이다. 반대로 간선 -는 다리이지만, 정점 과 를 삭제하면 그래프는 연결된 상태를 유지한다. 남은 정점 와 이 간선 -으로 이어져 있기 때문이다.