Informatica Online Judge

  기업투자 [0343 / 0157]

Time Limit(Test case) : 1000(ms)
Number of users who solved : 71   Total Tried : 60


The Champion of this Problem (C++) : gs16051 - ms / 311byte
My Best Submission (C++) : N/A

[]

Background

어떤 투자가가 여러 기업들에게 돈을 투자해서 최대의 이익을 얻고자 한다. 단, 투자는 만원 단위로 할 수 있으며 각 기업은 많이 투자할수록 많은 이익을 투자가에게 돌려준다. 돈을 투자하지 않은 경우는 당연히 얻게 되는 이익도 없다. 예를 들어서, 한 투자가가 4만원을 갖고 두 개의 기업들에 각각 만원 단위로 투자했을 경우 얻을 수 있는 이익은 다음과 같다.



위의 경우 만일, 기업 A에 1만원, 기업 B에 3만원을 투자하는 경우 투자가가 얻는 이익은 14만원 (5만원+9만원)이다.

4만원을 투자해서 가장 많은 이익을 얻을 경우 기업 B에만 4만원을 투자하는 경우로서 이때의 이익은 15만원이다.

여기서 투자가는 한 기업에 돈을 나누어 투자할 수는 없다.

투자액이 정해져 있고, 기업의 개수와 각 기업에 투자했을 경우에 얻게 되는 이익이 주어졌을 때 가장 많은 이익을 구하는 프로그램을 작성하라.

Input

이 파일의 첫 줄은 투자금액과 투자 가능한 기업들의 개수이며, 둘째 줄부터 각 줄은 투자액수 및 각 기업이 투자가에게 주는 이익이다. 단, 총 투자금액은 300만원을 넘지 않으며, 투자 가능한 기업의 개수는 최대 20개이다.

Output

출력의 첫 줄은 얻을 수 있는 최대 이익을 출력한다.

IO Example

입력
4 2
1 5 1
2 6 5
3 7 9
4 10 15

출력
15

Submit : [C/C++] | [C++11] | [Obj-C] | [Java] | [Python]
Prob Analysis : [Problem Statistics] | [Solution]