X-Mart
시간 제한1초메모리 제한128 MB
각 고객이 최대 두 제품은 유지, 최대 두 제품은 철수하라고 투표할 때, 모든 고객을 만족시키는 유지/철수 배정이 존재하는지 판정한다.
문제
유명 슈퍼마켓 체인 X-Mart는 비용을 줄이기 위해 매장 진열대에 두는 제품의 종류를 줄이기로 했다. 마케팅 부서는 이 결정이 매출에 영향을 줄까 걱정했고, 제품 종류 축소를 오히려 고객 관계를 개선할 기회로 삼기로 했다.
그래서 X-Mart는 인터넷 설문을 열어, 고객이 매장에 계속 남겨 두었으면 하는 제품과 진열대에서 빼기를 원하는 제품을 직접 고르게 했다. 현재 판매 중인 제품 목록은 인터넷에 공개되었다.
설문을 간단히 하기 위해, 각 고객은 계속 팔기를 원하는(찬성) 제품을 최대 2개, 그만 팔기를 원하는(반대) 제품을 최대 2개까지 고를 수 있다.
모든 투표를 데이터베이스에 모은 뒤, 마케팅 부서는 투표한 모든 고객을 만족시키는 새 제품 목록을 고를 수 있는지 알고 싶어 한다. 어떤 고객은 자신이 찬성한 제품 중 적어도 하나가 실제로 유지되고, 동시에 자신이 반대한 제품 중 적어도 하나가 실제로 빠졌을 때 만족한다. 한 고객이 같은 제품을 찬성과 반대에 동시에 투표하는 경우는 없다고 가정해도 된다.
입력
프로그램은 여러 개의 테스트 케이스를 처리해야 한다. 각 테스트 케이스의 첫 줄에는 고객 수 와 제품 수 를 나타내는 두 정수가 주어진다 (, ). 이어지는 개의 줄은 각각 한 고객의 선호를 네 정수 , , , 로 나타낸다 (). 와 는 그 고객이 계속 팔기를 원하는 제품이고, 와 는 그만 팔기를 원하는 제품이다. , , , 중 어떤 값이 이면 그 투표는 사용하지 않았다는 뜻이다. 인 줄은 입력의 끝을 나타낸다.
출력
각 테스트 케이스마다 한 줄을 출력한다. 투표한 모든 고객을 만족시킬 수 있으면 yes를, 불가능하면 no를 출력한다.