[백준17087] 숨바꼭질 6 (C++)
#include <iostream>
using namespace std;
long long arr[100000];
long long newarr[100000];
long long gcd(long long, long long);
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n; cin >> n;
long long x; cin >> x;
/*동생들의 위치를 arr에 저장
수빈이와 각 동생들 사이 거리를 newarr에 저장*/
for (int i = 0; i < n; i++) {
cin >> arr[i];
if (x > arr[i])
newarr[i] = x - arr[i];
else
newarr[i] = arr[i] - x;
}
// 최대공약수 구하기
int i = 1;
if (n == 1) // 동생이 한 명일 경우
cout << newarr[0];
// 동생이 두 명 이상일 경우 (수 n개의 최대공약수 구하기)
else {
while (1) {
newarr[i] = gcd(newarr[i - 1], newarr[i]);
if (i == n - 1) {
cout << newarr[i];
break;
}
i++;
}
}
return 0;
}
long long gcd(long long a, long long b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
Author And Source
이 문제에 관하여([백준17087] 숨바꼭질 6 (C++)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yoohoo030/백준17087-숨바꼭질-6-C저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)