타일 깔기
시간 제한2초메모리 제한1024 MB
각 행에 타일 세트를 하나 골라, 행과 열이 함께 증가하는 a개 칸과 행은 증가하고 열은 감소하는 b개 칸이 모두 타일로 덮이도록 배치를 찾는다.
문제
행 열 크기의 직사각형 바닥에 타일을 깔려고 한다. 초기에는 타일이 어디에도 깔려있지 않으며 각 행마다 개의 타일 세트 중 하나를 사용할 수 있다. 번째 타일 세트는 개의 수 , , , 로 나타낼 수 있으며 이는 행에 번째 타일 세트를 사용한 경우 행 , , , 열에 타일이 깔림을 나타낸다.
타일 세트의 목록이 주어질 때 다음 조건을 만족하는 개의 정수 순서쌍 , , , , , , , 가 존재하도록 타일을 까는것이 가능한지 판별하고 가능하다면 그 방법을 하나 찾아보자.
- 이며 이고 인 모든 에 대해 행 열에 타일이 깔려있다.
- 이며 이고 인 모든 에 대해 행 열에 타일이 깔려있다.
입력
첫 번째 줄에 , , , , 가 공백으로 구분되어 주어진다.
다음 개의 줄에 걸쳐 타일 세트에 대한 정보가 주어진다. 번째 줄에는 번째 타일 세트가 채우는 열의 개수 와 개의 열 인덱스 , , , 가 공백으로 구분되어 주어진다.
각 열은 최소 하나의 타일 세트에 포함된다. 즉, 인 모든 정수 에 대해 를 만족하는 가 존재한다.
출력
조건을 만족하도록 타일을 까는것이 불가능하다면 No를 출력한다.
그렇지 않다면 Yes를 출력하고 다음 줄에 사용한 타일 세트의 번호를 나타내는 개의 정수 , , , 을 공백으로 구분해 출력한다. 이는 번째 행에 번째 타일 세트를 사용했음을 나타낸다.