해적의 보물 나누기

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

요약
N명의 해적이 차례로 더미를 N등분해 한 몫과 나머지를 가져가고 나머지 몫은 되돌려 놓을 때, 각자가 가져간 동전 수와 마지막에 남은 더미를 구한다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 수학, 구현, 그리디
정답자
아직 제출이 없습니다

문제

NN명의 해적이 어느 섬을 약탈하여 모두 MM개의 동전을 얻었다. 약탈이 끝난 뒤 해적들은 동전을 한곳에 모아 하나의 공동 더미를 만들고, 다음 날 나누기로 한다.

그런데 밤이 되자 한 해적이 자기 몫을 먼저 몰래 챙기기로 마음먹는다. 그는 보물 더미로 몰래 다가가 MM개의 동전을 똑같은 크기의 NN개 더미로 나누는데, 이때 KK개의 동전이 남는다. 그는 남은 KK개의 동전을 자기가 갖고, 더미 하나를 자기 몫으로 숨긴 뒤, 나머지 더미들을 다시 하나의 더미로 합쳐 놓는다. 다른 해적들도 한 명씩 차례로 같은 일을 한다. 즉 각자 남아 있는 동전을 NN개의 더미로 나누어 그중 하나를 가져가고, 나머지 더미들의 크기가 똑같이 유지되도록 남는 동전을 자기가 챙긴다.

해적의 수와 동전의 수가 주어질 때, 각 해적이 숨긴 자기 더미에 든 동전의 수(똑같이 나눈 더미 하나에 남은 동전을 더한 값)와, 밤이 끝났을 때 공동 더미에 남아 있는 동전의 수를 구하여라.

입력

입력으로 동전의 수 MM과 해적의 수 NN이 순서대로 주어진다.

출력

첫째 줄에 각 해적이 가져간 동전의 수를 큰 값부터 작은 값 순서로 공백으로 구분하여 출력한다. 둘째 줄에 밤이 끝났을 때 공동 더미에 남아 있는 동전의 총 개수를 출력한다.

예제2

  1. 예제 1

    입력
    12 2
    
    예상 출력
    6 3
    3
    
  2. 예제 2

    입력
    10 3
    
    예상 출력
    4 2 2
    2