https://www.acmicpc.net/problem/1188
1188번: 음식 평론가
첫째 줄에 소시지의 수 N과 평론가의 수 M이 주어진다. (1 ≤ N, M ≤ 100)
www.acmicpc.net
모든 음식 평론가가 받는 소시지의 길이는 N / M으로 같다.
그렇다면 처음 모든 소시지를 1열로 나열해보자.
최대 M - 1번으로 자르면 M명의 평론가에게 나누어 줄 수 있다.
하지만 N = 4, M = 6인 경우에는 4번만 잘라도 6명의 평론가에게 나누어 줄 수 있게 된다.
N = 4, M = 6인 경우에는 2개의 소시지에 3명씩 배분하는 경우의 수를 두배 하면 된다.
N = 6, M = 9인 경우에는 2개의 소시지에 3명씩 배분하는 경우의 수를 세배하면 된다.
결국, 답은 M - GCD(N, M) 이다.
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
int main() {
int a, b; cin >> a >> b;
if (a % b == 0) {
cout << 0;
}
else {
cout << b - gcd(a, b);
}
}
'ps' 카테고리의 다른 글
[백준] 1368 - 물대기 (0) | 2022.09.21 |
---|---|
[백준] 21317 - 징검다리 건너기 (0) | 2022.09.21 |
[백준] 20207 - 달력 (0) | 2022.09.19 |
[백준] 20437 - 문자열 게임 2 (1) | 2022.09.19 |
[백준] 10711 - 모래성 (0) | 2022.09.17 |
댓글