반짝반짝 빛나는 별가루
시간 제한1초메모리 제한512 MB
N일 동안 K가지 마법 중 하나를 쓰거나 휴식하며, 연속 사용 횟수와 마법별 사용 경험으로 매일의 별가루를 계산한다. 총합을 출력하고, 피로도가 100을 넘으면 -1을 출력한다.
문제
스타는 별가루를 만드는 마법 연습을 하는 중이다. 본인의 실력을 시험하기 위해 하루에 한 번씩, 총 일 동안 마법을 사용하여 별가루를 얼마나 만들 수 있는지 확인하고자 했고 일 동안의 계획을 세웠다.
스타는 별가루를 만들 수 있는 가지의 마법을 사용할 수 있다. 각각의 마법을 번 마법, 번 마법, ... , 번 마법이라고 부르기로 하자.
번 마법을 사용해서 만들 수 있는 별가루의 개수는 다음과 같다.
식에 대한 설명은 다음과 같다.
- : 만들어진 별가루의 개수이다.
- : 번 마법을 사용해서 기본적으로 만들 수 있는 별가루의 개수이다.
- : 연속으로 마법을 사용한 횟수이다. 예를 들어, 오늘 마법을 사용하기 전에 마법을 일 연속으로 사용했다면 이다.
- : 번 마법의 숙련도이다. 예를 들어, 오늘 마법을 사용하기 전에 번 마법을 사용한 경험이 번 있으면 이다.
- 와 는 상수이다.
스타의 초기 피로도는 이며, 번 마법을 사용할 때마다 스타의 피로도는 만큼 상승한다. 피로도가 을 초과하게 되면, 마법봉이 망가지고 이후에는 어떤 마법도 쓸 수 없게 된다. 동시에, 지금까지 만들었던 별가루도 못 쓰게 된다. 피로도는 휴식을 통해 줄일 수 있다. 휴식을 취하면 피로도가 만큼 줄어들지만, 연속으로 마법을 사용한 횟수는 이 된다. 피로도는 미만으로 내려가지 않으며, 만약 휴식으로 감소하는 피로도가 현재 피로도보다 크다면 피로도는 이 된다.
스타의 계획을 보고 일 동안 만들 수 있는 별가루의 총 개수를 계산해 보자.
입력
첫째 줄에는 이 공백을 사이에 두고 주어진다.
둘째 줄에는 가 공백을 사이에 두고 주어진다.
셋째 줄에는 가 공백을 사이에 두고 주어진다.
넷째 줄에는 가 공백을 사이에 두고 주어진다.
다섯째 줄부터 개의 줄에 걸쳐 스타가 번째 날에 사용하려고 계획한 마법의 번호 가 한 줄에 하나씩 주어진다. 가 이면 그날 하루는 휴식을 취한다는 뜻이다.
입력으로 주어지는 모든 수는 정수이다.
출력
일 동안 만들 수 있는 별가루의 총 개수를 출력한다. 계획 중간에 마법봉이 망가진다면 -1을 출력한다.