반응형
https://www.acmicpc.net/problem/17087
본 문제는 수빈이가 동생 N명을 찾는 문제다. 수빈이의 위치를 X라고 했을 때, X+D, X-D로 이동할 수 있다. 따라서, 동생과 수빈이의 위치의 차를 구해야 하고, D의 최댓값을 구해야 하므로 수빈이의 위치와 동생의 위치의 차의 최대공약수를 구해야 한다.
- 수빈이와 동생의 위치의 차를 구한다.
- 1번의 최대공약수를 구한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <cstdio>
using namespace std;
int cal(int x, int y) {
if (y == 0) return x;
else return cal(y, x%y);
}
int main() {
int d[100001];
int n, s;
scanf("%d %d", &n, &s);
for (int i = 0; i < n; i++) {
int tmp;
scanf("%d", &tmp);
tmp -= s;
if (tmp < 0) tmp = -tmp;
d[i] = tmp;
}
int ans = d[0];
for (int i = 1; i < n; i++) {
ans = cal(ans, d[i]);
}
printf("%d", ans);
}
|
cs |
반응형
'백준' 카테고리의 다른 글
[백준 1212] 8진수 2진수, C++ (0) | 2020.01.13 |
---|---|
[백준 1373] 2진수 8진수, C++ (0) | 2020.01.13 |
[백준 9613] GCD 합, C++ (0) | 2020.01.13 |
[백준] 2225 - 합분해, C++ (0) | 2020.01.13 |
[백준] 1699 - 제곱수의 합, C++ (0) | 2020.01.12 |
댓글