본문 바로가기

코딩테스트/C++

[백준 C++] 17087번: 숨바꼭질 6

https://www.acmicpc.net/problem/17087

 

17087번: 숨바꼭질 6

수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, ..., AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이

www.acmicpc.net

 

#include <iostream>
using namespace std;

int a[100001];

int func(int x, int y) {
if (y == 0) return x;
else return func(y, x % y);
}

int main(int argc, char* argv[])
{
int n, s;


cin >> n >> s;

for (int i = 0; i < n; i++) {
cin >> a[i];
if (a[i] > s)
a[i] = a[i] - s;
else
a[i] = s - a[i];
}

int ans = a[0];

for (int i = 1; i < n; i++)
{
ans = func(ans, a[i]);
}

cout << ans << '\n';


return 0;
}