풍선

시간 제한1초메모리 제한128 MB

문제

프로그래밍 대회에서는 팀이 문제를 풀 때마다 풍선을 나눠 주는데, 이 과정에서 물류 문제가 생길 수 있다. 한 대회장에는 풍선이 채워진 두 개의 방 A와 B가 있다. N개의 팀이 대회에 참가하며 각 팀은 서로 다른 자리에 앉아 있다. 어떤 팀은 방 A에 더 가깝고, 어떤 팀은 방 B에 더 가까우며, 어떤 팀은 두 방에서 같은 거리에 있다.

각 팀이 필요로 하는 풍선의 수와, 각 팀에서 방 A까지의 거리 및 방 B까지의 거리가 주어진다. 두 방에서 풍선을 최적으로 배분한다고 할 때, 모든 풍선을 각 팀에게 전달하기 위해 이동해야 하는 총 거리의 최솟값을 구하여라. 모든 풍선은 동일하며, 한 팀의 풍선은 두 방에서 임의의 비율로 나누어 가져올 수 있다.

입력

입력에는 여러 개의 테스트 케이스가 있다. 각 테스트 케이스는 세 정수가 담긴 줄로 시작한다.

N A B

여기서 N은 팀의 수이고($1 \le N \le 1000$), AB는 각각 방 A와 방 B에 있는 풍선의 개수이다($0 \le A, B \le 10000$). 이어지는 N개의 줄에는 각 팀에 대한 세 정수가 주어진다.

K DA DB

여기서 K는 이 팀이 필요로 하는 풍선의 총 개수, DA는 이 팀에서 방 A까지의 거리, DB는 이 팀에서 방 B까지의 거리이다($0 \le DA, DB \le 1000$). 풍선은 항상 충분하다고 가정할 수 있다. 즉, 모든 K의 합은 $A + B$ 이하이다. 입력은 세 개의 0이 담긴 줄로 끝난다.

출력

각 테스트 케이스마다 한 정수를 출력한다. 이는 모든 풍선을 전달하기 위해 이동해야 하는 총 거리의 최솟값이다. 방 A나 방 B에서 팀으로 가는 편도 이동만 계산하고, 심부름꾼이 방으로 되돌아가는 거리는 계산하지 않는다. 각 답을 한 줄에 하나씩, 불필요한 공백 없이 출력하고 답 사이에 빈 줄을 넣지 않는다.