지수 교환
시간 제한1초메모리 제한1024 MB
앨리스와 밥이 가진 b^p 달러를 b의 거듭제곱 단위로 한 사람에게 모은다. 가장 많이 송금하는 사람의 거래 횟수가 최소가 되는 값을 구한다.
문제
앨리스와 밥이 협력 게임을 하고 있다. 두 사람이 함께 가진 돈은 달러이다. 여기서 와 는 주어진 정수이다. 앨리스는 처음에 달러를 가지고, 밥은 달러를 가진다. 두 사람은 돈을 한 사람에게 모아서 한 명이 전부 가지려고 한다.
거래 한 번에 한 사람이 상대에게 달러를 보낼 수 있다. 이때 는 를 만족하는 정수이다. 각 사람은 자신이 시작하는 거래 수를 가능한 한 적게 하려고 한다. 두 사람은 거래를 가장 많이 시작하는 사람(가장 바쁜 사람)이 시작하는 거래 수가 가능한 한 적어지도록 협력한다.
앨리스와 밥은 돈을 모두 옮기는 데 가장 바쁜 사람이 시작해야 하는 거래 수의 최솟값을 알고 싶어 한다.
입력
첫 줄에 두 정수 ()와 ()가 주어진다. 는 진법의 밑이고, 는 자릿수이다.
다음 줄에는 공백으로 구분된 정수 개 가 주어진다. 각 는 를 만족하고, 이다. 이 값들은 의 진법 자릿수이며, 가장 높은 자리부터 순서대로 주어진다. 즉 이다. 예를 들어 일 때 4 2 7 8 6은 10진법 수 42786을 뜻한다.
출력
돈을 앨리스 또는 밥 한 사람에게 모두 옮기는 데 필요한, 가장 바쁜 사람이 시작하는 거래 수의 최솟값을 정수 하나로 출력한다.