주방 조합론
시간 제한4초메모리 제한256 MB
어울리지 않는 접시 쌍을 피해 전채와 본요리 후식을 고르고 공유 재료의 브랜드 가짓수를 곱해 총 경우의 수를 구합니다.
문제
요리사가 애피타이저 하나, 메인 요리 하나, 디저트 하나로 이루어진 3코스 저녁 식사를 준비한다. 요리책에는 코스마다 여러 요리가 실려 있지만, 서로 어울리지 않는 요리 쌍이 있어서 그런 두 요리는 같은 저녁 식사에 함께 낼 수 없다.
요리마다 재료 목록이 정해져 있고, 재료마다 여러 브랜드가 팔린다. 같은 재료라도 브랜드가 다르면 서로 다른 저녁 식사로 센다.
한 재료가 고른 세 요리 중 둘에 들어갈 수도 있고, 셋 모두에 들어갈 수도 있다. 고른 요리 중 둘 이상이 같은 재료를 쓰면 요리사는 그 재료를 한 브랜드만 사서 모든 요리에 똑같이 쓴다.
애피타이저 하나, 메인 요리 하나, 디저트 하나를 고르는 방법과 세 요리가 쓰는 재료마다 브랜드를 고르는 방법을 모두 합쳐, 서로 다른 저녁 식사가 몇 가지인지 세어라.
입력
첫째 줄에 정수 다섯 개 , , , , 이 주어진다. 는 존재하는 재료의 수 (), , , 는 각각 고를 수 있는 애피타이저, 메인 요리, 디저트의 수 (), 은 서로 어울리지 않는 요리 쌍의 수 ()이다.
둘째 줄에 정수 개 가 주어진다. ()는 재료 의 브랜드 수이다.
다음 개 줄에 애피타이저 개, 메인 요리 개, 디저트 개를 차례로 설명한다. 각 줄은 그 요리에 들어가는 재료의 수 ()로 시작하고, 이어서 서로 다른 정수 ()가 주어진다.
마지막 개 줄에는 서로 어울리지 않는 두 요리의 번호가 주어진다. 요리에는 입력에 나온 순서대로 번부터 번까지 번호가 붙으므로, 이면 애피타이저, 이면 메인 요리, 이면 디저트이다. 한 쌍을 이루는 두 요리는 항상 서로 다른 코스에 속하고, 같은 쌍이 두 번 주어지지 않는다.
출력
서로 다른 저녁 식사의 수가 이하이면 그 수를 출력한다. 그렇지 않으면 too many를 출력한다.