만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

지수 교환

시간 제한1초메모리 제한1024 MB

요약
앨리스와 밥이 가진 b^p 달러를 b의 거듭제곱 단위로 한 사람에게 모은다. 가장 많이 송금하는 사람의 거래 횟수가 최소가 되는 값을 구한다.
난이도

보통10점 중 7점

유형
수학, 그리디, 이분 탐색
정답자
아직 제출이 없습니다

문제

앨리스와 밥이 협력 게임을 하고 있다. 두 사람이 함께 가진 돈은 bpb^p 달러이다. 여기서 bb와 pp는 주어진 정수이다. 앨리스는 처음에 xx 달러를 가지고, 밥은 bp−xb^p - x 달러를 가진다. 두 사람은 돈을 한 사람에게 모아서 한 명이 전부 가지려고 한다.

거래 한 번에 한 사람이 상대에게 byb^y 달러를 보낼 수 있다. 이때 yy는 0≤y<p0 \le y < p를 만족하는 정수이다. 각 사람은 자신이 시작하는 거래 수를 가능한 한 적게 하려고 한다. 두 사람은 거래를 가장 많이 시작하는 사람(가장 바쁜 사람)이 시작하는 거래 수가 가능한 한 적어지도록 협력한다.

앨리스와 밥은 돈을 모두 옮기는 데 가장 바쁜 사람이 시작해야 하는 거래 수의 최솟값을 알고 싶어 한다.

입력

첫 줄에 두 정수 bb (2≤b≤1002 \le b \le 100)와 pp (2≤p≤10002 \le p \le 1000)가 주어진다. bb는 진법의 밑이고, pp는 자릿수이다.

다음 줄에는 공백으로 구분된 정수 pp개 xp−1,xp−2,…,x0x_{p-1}, x_{p-2}, \ldots, x_0가 주어진다. 각 xix_i는 0≤xi<b0 \le x_i < b를 만족하고, xp−1>0x_{p-1} > 0이다. 이 값들은 xx의 bb진법 자릿수이며, 가장 높은 자리부터 순서대로 주어진다. 즉 x=∑0≤i<pbixix = \sum_{0 \le i < p} b^i x_i이다. 예를 들어 b=10b=10일 때 4 2 7 8 6은 10진법 수 42786을 뜻한다.

출력

돈을 앨리스 또는 밥 한 사람에게 모두 옮기는 데 필요한, 가장 바쁜 사람이 시작하는 거래 수의 최솟값을 정수 하나로 출력한다.

예제1

  1. 예제 1

    입력
    10 5
    4 2 7 8 6
    
    예상 출력
    7