실력과 열정
시간 제한1초메모리 제한1024 MB
매일 K 이상을 실력과 열정 사이에서 옮기며 N일 동안 A_i 곱하기 B_i의 합을 최대로 만드는 값을 구한다.
- 난이도
보통10점 중 7점
- 유형
- 동적 계획법
- 정답자
- 아직 제출이 없습니다
문제
홍익대학교 컴퓨터공학과 승준이는 '알고리즘 분석' 수업을 수강한다.
교수님은 수업에서 실력과 열정을 가장 중요하게 보며, 수업이 진행되는 일 동안 매일 두 값의 곱을 점수에 더한다.
즉, 일차의 실력과 열정을 각각 음이 아닌 정수로 수치화한 값을 , 라 하면, 최종 점수는 아래와 같다.
초기 상태에서 승준이의 실력은 , 열정은 이다.
과도한 공부는 열정의 손실을 일으키고 과도한 열정은 자만을 불러 실력을 줄인다.
승준이는 매일 ()일차 성적 갱신 전에 두 행동 중 하나를 선택해 현재 상태를 갱신해야 한다.
- 만큼 공부한다 : 열정 수치에서 이상인 정수 를 선택해 실력으로 바꾼다.
- 만큼 쉰다 : 실력 수치에서 이상인 정수 를 선택해 열정으로 바꾼다.
매일 이상의 열정을 실력으로 바꾸거나, 이상의 실력을 열정으로 바꿔야한다는 뜻이다.
목표는 승준이가 매일 적당한 행동을 선택해 일 후의 최종 점수를 최대로 만드는 것이다.
일차 수업이 종료된 후에 승준이가 얻을 수 있는 최종 점수를 최대화해 보자.
입력
첫번째 줄에 이 주어진다. ()
두번째 줄에 승준이의 초기 실력 수치 , 초기 열정 수치 , 실력과 열정의 변환 가능한 최소 수치인 가 주어진다.
출력
일차 수업이 종료된 후 승준이가 얻을 수 있는 최종 점수의 최댓값을 출력한다.