사탕 먹이기
시간 제한2초메모리 제한512 MB
i번 사탕의 효과 (s_i, t_i)가 복소수 점화식으로 주어질 때, 일부를 골라 합이 (X, Y)가 되게 하는 부분집합을 찾아 출력한다.
문제
당신은 슬라임을 키우는 게임을 하고 있다. 슬라임은 부드러움과 투명도라는 두 정수 매개변수를 가진다. 이 게임에는 부터 까지 번호가 붙은 종류의 사탕이 있고, 번째 종류의 사탕을 슬라임에게 먹이면 부드러움과 투명도가 각각 와 만큼 증가한다. 여기서 와 는 와 를 정수로 하여 다음 식으로 계산된다.
- 각 에 대해
또한 슬라임은 새로운 종류의 사탕을 먹는 것을 좋아한다. 따라서 각 종류의 사탕은 최대 한 번만 먹일 수 있다.
처음에 슬라임의 부드러움과 투명도는 모두 0이다. 목표는 슬라임에게 0개 이상의 사탕을 먹여서 슬라임의 부드러움과 투명도가 각각 와 가 되도록 하는 것이다. 이것이 가능한지 판별하고, 가능하다면 그러한 방법을 하나 찾아라.
첫 번째 예시 입력에서 처음 네 종류의 사탕의 특성은 다음과 같다.
첫 번째, 두 번째, 네 번째 종류의 사탕을 슬라임에게 먹이면 슬라임의 부드러움과 투명도는 각각 와 가 된다.
입력
입력은 여러 데이터셋으로 이루어진다. 각 데이터셋은 다음 형식으로 주어진다.
각 데이터셋은 네 정수 , , , 를 포함하는 한 줄로 이루어진다. , , , , 라고 가정할 수 있다.
입력의 끝은 네 개의 0으로 이루어진 한 줄로 나타난다. 데이터셋의 수는 200을 넘지 않는다.
출력
각 데이터셋에 대해 목표를 달성할 수 없으면 을 한 줄에 출력한다. 그렇지 않으면 슬라임에게 먹인 사탕 종류의 수를 이라 하고, 첫 줄에 을 출력한다. 그런 다음 각 에 대해 번째 줄에 먹인 사탕 종류 중 번째로 작은 번호를 출력한다.
정답이 여러 개면 그중 아무거나 출력해도 된다.