BARMAN
시간 제한1초메모리 제한128 MB
숨겨진 n에 대한 숨겨진 값들의 위수 m_i만 주어졌을 때, 최대 2k번의 구간 곱셈 연산으로 최종 합의 위수의 최악의 경우 보장값을 최대화한다.
문제
바이티흐 교수는 임의의 정수 을 법으로 하는 산술 수열을 연구한다. 정수 에 대하여 을 법으로 하는 위수(order)란 이 으로 나누어떨어지는 가장 작은 정수 을 뜻하며, 이는 과 같다.
바이티흐는 개의 정수 와 법 을 비밀리에 정해 두고, 각 의 에 대한 위수 만 알려 준다. 당신은 이후 여러 연산을 요청할 수 있으며, 최대 번까지 요청할 수 있다. 한 번의 연산은 연속한 구간과 상수 를 골라, 그 구간에 속한 모든 원소 에 를 곱한다. 모든 연산이 적용된 뒤, 바이티흐는 합 의 에 대한 위수만큼의 금액을 B$ 단위로 지불한다.
바이티흐는 인색하다. 그는 당신이 요청한 모든 연산을 확인한 뒤에야 법 과 실제 값 를 확정하며, 알려 준 위수 와 모순되지 않는 범위에서 항상 지불액이 최소가 되도록 고른다.
바이티흐가 이후 과 값 를 어떻게 고르더라도 당신이 확실히 보장받을 수 있는 최대 지불액을 구하라.
입력
첫째 줄에 정수 가 주어진다 ().
둘째 줄에 개의 정수 가 주어진다 (). 는 의 에 대한 위수이다.
출력
당신이 보장받을 수 있는 최대 지불액을 B$ 단위의 정수 하나로 출력하라. 이는 바이티흐가 이후 주어진 위수와 모순되지 않게 법 과 값 를 어떻게 고르더라도 성립해야 한다.
이 값은 매우 커질 수 있으므로(자릿수가 수천에 이를 수 있음) 큰 수 연산으로 전체 자릿수를 그대로 출력하라.