Skip to content

다이어트

Unrated
한국어

Language

Contribute a translation
Time limit
2000 ms
Memory limit
512 MB
Submissions
0
Correct
0
Solved by
0
AC rate

Statement

식재료 $N$개 중 몇 개를 선택하려고 한다. 선태한 식재료의 단백질, 지방, 탄수화물, 비타민의 합이 각각 주어진 최소량 이상이어야 한다.

각 식재료에는 단백질, 지방, 탄수화물, 비타민의 양과 가격이 주어진다. 조건을 만족하는 선택 중 가격의 합이 가장 작은 것을 찾아보자.

예를 들어 다음 $6$개의 식재료가 있다고 하자.

재료 단백질 지방 탄수화물 비타민 가격
1 30 55 10 8 100
2 60 10 10 2 70
3 10 80 50 0 50
4 40 30 30 8 60
5 60 10 70 2 120
6 20 70 50 4 40

최소 영양분이 단백질 $100$, 지방 $70$, 탄수화물 $90$, 비타민 $10$이라면,

  • 식재료 ${1, 3, 5}$의 영양분 합은 $(100, 145, 130, 10)$, 가격은 $270$이다.
  • 식재료 ${2, 3, 4}$의 영양분 합은 $(110, 120, 90, 10)$, 가격은 $180$이다.

따라서 ${2, 3, 4}$가 더 좋은 선택이다.

조건을 만족하는 식재료들의 최소 비용과 그때 선택한 식재료들을 구하여라.

Input

첫째 줄에 식재료의 개수 $N$이 주어진다. $(3 \le N \le 15)$

둘째 줄에 필요한 단백질, 지방, 탄수화물, 비타민의 최소 영양분 $mp$, $mf$, $ms$, $mv$가 차례로 주어진다. $(0 \le mp, mf, ms, mv \le 500$, $mp + mf + ms + mv > 0)$

다음 $N$개의 줄에는 $i$번째 식재료의 단백질, 지방, 탄수화물, 비타민, 그리고 가격을 나타내는 5개의 정수 $p_{i}$, $f_{i}$, $s_{i}$, $v_{i}$, $c_{i}$가 공백으로 구분되어 주어진다. 모든 값은 $0$ 이상 $500$ 이하의 정수이다.

Output

조건을 만족하도록 식재료를 선택했을 때의 최소 비용을 첫째 줄에 출력한다.

둘째 줄에는 선택한 식재료의 번호를 오름차순으로 출력한다. 번호는 $1$부터 시작한다.

최소 비용이 같은 선택이 여러 개라면, 번호들을 앞에서부터 비교했을 때 가장 먼저 작은 수가 나오는 선택을 출력한다. 조건을 만족하는 선택이 없다면 첫째 줄에 -1만 출력한다.

Examples

Sample input 1
6
100 70 90 10
30 55 10 8 100
60 10 10 2 70
10 80 50 0 50
40 30 30 8 60
60 10 70 2 120
20 70 50 4 40
Sample output 1
134
2 4 6

Tags

No tags yet

Source