반응형

 

<코드>

#include<iostream>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;

int N, S, x, ans;
int A[100001];

int solve(int a, int b)
{
	if (b == 0) return a;
	else return solve(b, a % b);
}

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> N >> S;

	for (int i = 0; i < N; i++)
	{
		cin >> x;
		x = abs(S - x);
		A[i] = x;
	}

	ans = A[0];
	for (int i = 1; i < N; i++)
	{
		ans = solve(ans, A[i]);
	}

	cout << ans;
}

 

풀이 방법

 

유클리드 호제법으로 모든 수(수빈과 동생 사이의 거리)들의 최대 공약수를 찾는것이 이 문제의 핵심.

 

 

 

www.acmicpc.net/problem/17087

 

17087번: 숨바꼭질 6

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

www.acmicpc.net

 

반응형

+ Recent posts