우주선

아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

바이트란드 공군의 세 장군 바이텍, 카이텍, 자이텍은 나라 역사상 최초의 대규모 우주 탐사를 준비하고 있다. 세 사람은 이미 각자 로켓 연료를 얼마씩 모아 두었고, 이제 로켓을 이루는 모듈을 사려고 한다. 바이트란드의 로켓은 여러 단으로 동작한다. 비행을 시작하면 맨 아래(첫 번째) 모듈만 추진력을 내고, 그 모듈의 연료가 다 떨어지면 그 모듈을 떼어 내고 다음 모듈이 추진을 이어받는 식이다.

오늘 각 장군은 자신이 즐겨 찾는 공장에 가서 어떤 효율을 가진 엔진 모듈을 정확히 하나씩 산다. 구입한 세 모듈은 정해진 순서로 쌓인다. 바이텍은 맨 아래 모듈, 카이텍은 가운데 모듈, 자이텍은 맨 위 모듈을 산다. 로켓의 사거리(날아갈 수 있는 최대 거리)는 세 모듈 각각의 사거리를 모두 더한 값이며, 한 모듈의 사거리는 그 엔진의 효율과 그 모듈에 채운 연료의 양을 곱한 값이다. 바이텍은 자신의 연료 bb를 전부 자기 모듈에 채우고, 카이텍은 kk를, 자이텍은 zz를 각자 자기 모듈에 채운다.

가격이 계속 오르기 때문에 장군들이 늘 가장 효율이 높은 모듈을 살 수 있는 것은 아니다. 그래서 이들은, 각 장군이 자기 공장에서 모듈을 하나씩 골라 만든 로켓의 사거리가 가능한 최대 사거리의 절반보다 큰 서로 다른 모듈 세 쌍(트리플)이 몇 가지나 되는지 알고 싶어 한다. 여기서 최대 사거리는 모든 장군이 자기 공장에서 가장 효율이 높은 모듈을 샀을 때의 사거리이다. 효율이 같은 두 모듈도 서로 다른 모듈로 센다.

다음을 수행하는 프로그램을 작성하라.

  • 표준 입력에서 장군들이 방문할 공장의 모듈 목록과 각자 가진 로켓 연료의 양을 읽어 들인다.
  • 바이텍, 카이텍, 자이텍의 조건을 만족하는 모듈 트리플의 개수를 구한다.
  • 그 결과를 표준 출력에 출력한다.

입력

첫째 줄에는 세 정수 bb, kk, zz (1b,k,z10000000001 \le b, k, z \le 1\,000\,000\,000)가 공백 하나로 구분되어 주어진다. 각각 바이텍, 카이텍, 자이텍이 가진 연료의 양이다.

이어서 세 공장의 정보가 바이텍, 카이텍, 자이텍이 방문하는 순서대로 주어진다. 각 공장의 정보는 두 줄로 이루어진다. 첫째 줄에는 그 공장이 파는 모듈의 개수 nin_i (1ni10001 \le n_i \le 1000)가 주어지고, 둘째 줄에는 각 모듈의 효율을 나타내는 nin_i개의 양의 정수가 공백 하나로 구분되어 주어진다. 각 효율은 10000000001\,000\,000\,000 이하이다.

출력

사거리가 최대 사거리의 절반보다 큰(엄밀히 큰) 로켓의 개수를 한 줄에 출력한다.

설명

가령 b=2b = 2, k=3k = 3, z=3z = 3이고, 첫 번째 공장이 효율 1133을, 두 번째 공장이 11, 55, 11을, 세 번째 공장이 22를 파는 경우를 보자(첫 번째 테스트 케이스). 가능한 최대 사거리는 27=23+35+3227 = 2 \cdot 3 + 3 \cdot 5 + 3 \cdot 2이므로, 사거리가 13.513.5보다 큰 로켓만 센다. 조건을 만족하는 모듈 트리플은 효율로 나타내면 (1,5,2)(1, 5, 2), (3,1,2)(3, 1, 2), (3,1,2)(3, 1, 2), (3,5,2)(3, 5, 2)의 네 가지이고, 각각의 사거리는 2323, 1515, 1515, 2727이다. (3,1,2)(3, 1, 2)가 두 번 세어지는 이유는 가운데 공장에 효율이 11인 모듈이 두 개 있기 때문이다.