공부 계획하기
시간 제한1초메모리 제한1024 MB
총 공부 시간이 T를 넘지 않도록 N개 과목에 시간을 배분해, 받은 점수 합에서 총 공부 시간에 따른 피로 감소를 뺀 값을 최대로 만드는 시간 배분을 구한다.
문제
무대소녀 바나나는 고등학교 3학년이 되었다. 명문 대학을 가고 싶은 그녀이지만, 평소 연기 연습만을 하며 내신 공부를 전혀 하지 않았던 바나나는 정신을 차리고 시간 뒤에 있는 수능을 위해 공부하기로 마음먹었다. 그러나 공부 경험이 없는 바나나는 공부를 얼마나 해야 하는지를 알 수 없었다. 바나나를 위해 공부 스케줄을 짜주자!
수능에는 개의 과목이 있다. 번 과목을 총 시간 공부했을 때 받을 수 있는 점수를 라 하자. 바나나가 지켜오던 스케줄에 따라, 각 과목의 공부 시간은 음이 아닌 정수여야 함에 주의하자.
그러나 인간의 체력에 한계가 있기 때문에 하루 종일 공부를 하는 것은 힘들다. 총 시간 만큼 공부를 하면 피곤해져서 총 점수가 만큼 감소하게 된다. 이로 인하여 점수가 음수가 될 수도 있음에 주의하자.
당신은 최적의 방법으로 공부를 하였을 때 바나나가 얻을 수 있는 최대 점수와 그때의 공부 방법을 구해야 한다.
입력
첫째 줄에는 수능 과목의 수 과 가 공백으로 구분되어 주어진다.
둘째 줄부터 번째 줄까지는 번째 줄에 번째 과목을 시간 공부했을 때 받을 수 있는 점수에 대한 개의 수 , , , 가 공백으로 구분되어 주어진다.
번째 줄에는 개의 수 , , , 가 공백으로 구분되어 주어진다.
입력으로 주어지는 모든 수는 정수이다.
출력
첫째 줄에 바나나가 받을 수 있는 최대 점수 를 출력하라.
둘째 줄에 각 과목 별로 공부해야 하는 시간을 뜻하는 개의 정수 , , , 을 공백으로 구분하여 출력하라. 만약 최대 점수를 받는 공부 방법이 여러 가지라면, 그 중 아무거나 출력해도 좋다.
제한
- ;
- ;