균형 잡힌 식단
시간 제한2초메모리 제한512 MB
비례 상수로 주어진 목표 비율과 지금까지의 균형 잡힌 섭취 기록이 있을 때, 매 순간 균형을 유지하며 더 먹을 수 있는 사탕 개수를 구하거나 forever를 출력한다.
문제
대니는 매일 사탕 가게에서 사탕을 하나 사서 먹는다. 가게에는 1번부터 번까지 번호가 붙은 가지 사탕이 있다. 대니는 균형 잡힌 식단이 중요하다고 생각해서 사탕을 살 때도 같은 원칙을 지킨다. 사탕 종류 마다 목표 비율 를 정해 두었고, 는 인 실수다. 지금까지 먹은 사탕 가운데 종류 가 차지하는 비율을 에 가깝게 유지하려고 한다.
대니가 먹은 종류 사탕의 개수를 라 하고, 라 하자. 모든 에 대해
이 성립하면 지금까지 먹은 사탕이 균형을 이룬다고 한다.
대니는 한동안 사탕을 사서 먹어 왔고, 그동안 먹은 사탕은 줄곧 균형을 이뤘다. 이제 앞으로 몇 개를 더 살 수 있는지 궁금하다. 목표 비율 와 지금까지 먹은 순서가 주어질 때, 매 순간 균형을 유지하면서 대니가 더 사서 먹을 수 있는 사탕의 최대 개수를 구하라.
입력
입력은 세 줄이다. 첫째 줄에는 사탕 종류의 수 ()과 대니가 이미 먹은 사탕의 개수 ()가 주어진다.
둘째 줄에는 양의 정수 이 주어진다. 이 수는 에 비례하며, 이다. 를 모두 더한 값은 이하다.
셋째 줄에는 정수 ()가 주어진다. 는 대니가 번째 날에 사서 먹은 사탕의 종류다. 이 수열의 모든 접두사는 수열 전체를 포함해서 균형을 이룬다.
출력
매 순간 균형을 유지하면서 대니가 더 사서 먹을 수 있는 사탕의 최대 개수를 출력한다. 그 개수에 상한이 없으면 forever를 출력한다.