독서 모임 책 교환
시간 제한2초메모리 제한256 MB
N명 회원이 M개 선호 선언 안에서 서로 다른 선호 도서를 한 권씩 받을 수 있는지 판정합니다.
문제
포르투의 독서 모임은 해마다 책 교환 행사를 연다. 회원은 각자 아끼는 책을 한 권씩 들고 와서, 마음에 드는 다른 책을 찾아 그 책의 주인과 바꾼다.
예전에는 서로의 책을 마음에 들어 하는 두 사람만 책을 바꿨다. 회원 A가 들고 온 책을 회원 B가 마음에 들어 하고 B가 들고 온 책을 A가 마음에 들어 하면, 두 사람이 책을 맞바꾸는 식이다. 그래서 들고 온 책을 그대로 들고 돌아가는 회원이 많았다.
짝 대신 순환을 찾으면 교환이 더 늘어난다. A는 B의 책만 마음에 들어 하고, B는 C의 책만, C는 A의 책만 마음에 들어 한다고 하자. 이 세 사람이 책을 한 방향으로 돌리면 모두 새 책을 얻는다. 순환의 길이는 3보다 길어도 된다.
회원 수와 회원이 마음에 들어 하는 책이 주어진다. 모든 회원이 새 책을 받도록 책을 나눌 수 있는지 판정하는 프로그램을 작성하시오. 회원은 마음에 들어 하는 책을 받을 때만 자기 책을 내놓는다. 즉 모든 회원 에게 서로 다른 책 를 하나씩 배정하되, 회원 는 를 마음에 들어 해야 한다.
입력
첫째 줄에 회원 수 과 관심 표명의 수 이 공백으로 구분되어 주어진다.
다음 개 줄에는 각각 두 정수 와 가 주어진다. 회원 가 회원 의 책을 마음에 들어 한다는 뜻이다. 와 는 항상 다르다. 회원이 자기가 들고 온 책을 마음에 들어 하는 일은 없다. 같은 쌍은 두 번 주어지지 않는다.
출력
모든 회원이 새 책을 받도록 나눌 수 있으면 YES를, 그럴 수 없으면 NO를 출력한다.
제한
- 이고