반짝반짝 빛나는 별가루
시간 제한1초메모리 제한512 MB
하루씩 주문 사용과 휴식 계획이 주어질 때, 연속 사용 보너스와 숙련도를 적용해 만든 스타더스트의 총합을 구합니다. 지팡이가 부러지면 -1을 출력합니다.
문제
스타는 별가루를 만드는 마법을 연습하고 있다. 실력을 시험하기 위해 일 동안 하루에 한 번씩 마법을 사용하며 별가루를 얼마나 만들 수 있는지 확인하기로 하고 계획을 세웠다.
스타는 별가루를 만들 수 있는 가지 마법을 사용할 수 있다. 각 마법을 1번 마법, 2번 마법, ..., 번 마법이라고 부른다. 번 마법으로 만들 수 있는 별가루의 개수는 다음과 같다.
- : 만들어진 별가루의 개수이다.
- : 번 마법으로 기본적으로 만들 수 있는 별가루의 개수이다.
- : 연속으로 마법을 사용한 횟수이다. 예를 들어 오늘 마법을 쓰기 전에 5일 연속으로 마법을 썼다면 이다.
- : 번 마법의 숙련도이다. 오늘 마법을 쓰기 전에 번 마법을 3번 사용했다면 이다.
- 와 는 상수이다.
스타의 초기 피로도는 0이다. 번 마법을 쓸 때마다 피로도가 만큼 오른다. 피로도가 100을 초과하면 마법봉이 망가지고, 이후에는 어떤 마법도 쓸 수 없다. 이때 지금까지 만든 별가루도 모두 쓸 수 없게 된다. 휴식을 취하면 피로도가 만큼 줄지만, 연속 사용 횟수는 0이 된다. 피로도는 0 미만으로 내려가지 않으며, 휴식으로 줄어드는 양이 현재 피로도보다 크면 피로도는 0이 된다.
스타의 계획을 보고 일 동안 만들 수 있는 별가루의 총 개수를 계산한다.
입력
첫째 줄에 이 공백으로 구분되어 주어진다. (, , )
둘째 줄에 가 공백으로 구분되어 주어진다. ()
셋째 줄에 가 공백으로 구분되어 주어진다. ()
넷째 줄에 가 공백으로 구분되어 주어진다. ()
다섯째 줄부터 개의 줄에 걸쳐 스타가 번째 날에 사용하려고 계획한 마법의 번호 ()가 한 줄에 하나씩 주어진다. 가 0이면 그날은 휴식을 취한다.
입력으로 주어지는 모든 수는 정수이다.
출력
일 동안 만들 수 있는 별가루의 총 개수를 출력한다. 계획 중간에 마법봉이 망가지면 -1을 출력한다.