๐Ÿ•๏ธ ICPC Sinchon/Basic Math

[BOJ][C++] ๋ฐฑ์ค€ 17087๋ฒˆ: ์ˆจ๋ฐ”๊ผญ์งˆ 6

์„ ๋‹ฌ 2023. 1. 24. 02:30
๋ฐ˜์‘ํ˜•

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

 

17087๋ฒˆ: ์ˆจ๋ฐ”๊ผญ์งˆ 6

์ˆ˜๋นˆ์ด๋Š” ๋™์ƒ N๋ช…๊ณผ ์ˆจ๋ฐ”๊ผญ์งˆ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ํ˜„์žฌ ์  S์— ์žˆ๊ณ , ๋™์ƒ์€ A1, A2, ..., AN์— ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ๊ฑธ์–ด์„œ ์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด์˜ ์œ„์น˜๊ฐ€ X์ผ๋•Œ ๊ฑท๋Š”๋‹ค๋ฉด 1์ดˆ ํ›„์— X+D๋‚˜ X-D๋กœ ์ด

www.acmicpc.net

 

๋ฌธ์ œ

์ˆ˜๋นˆ์ด๋Š” ๋™์ƒ N๋ช…๊ณผ ์ˆจ๋ฐ”๊ผญ์งˆ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด๋Š” ํ˜„์žฌ ์  S์— ์žˆ๊ณ , ๋™์ƒ์€ A1, A2, ..., AN์— ์žˆ๋‹ค.

์ˆ˜๋นˆ์ด๋Š” ๊ฑธ์–ด์„œ ์ด๋™์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด์˜ ์œ„์น˜๊ฐ€ X์ผ๋•Œ ๊ฑท๋Š”๋‹ค๋ฉด 1์ดˆ ํ›„์— X+D๋‚˜ X-D๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ˆ˜๋นˆ์ด์˜ ์œ„์น˜๊ฐ€ ๋™์ƒ์ด ์žˆ๋Š” ์œ„์น˜์™€ ๊ฐ™์œผ๋ฉด, ๋™์ƒ์„ ์ฐพ์•˜๋‹ค๊ณ  ํ•œ๋‹ค.

๋ชจ๋“  ๋™์ƒ์„ ์ฐพ๊ธฐ์œ„ํ•ด D์˜ ๊ฐ’์„ ์ •ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ฐ€๋Šฅํ•œ D์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•ด๋ณด์ž.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N(1 ≤ N ≤ 105)๊ณผ S(1 ≤ S ≤ 109)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์— ๋™์ƒ์˜ ์œ„์น˜ Ai(1 ≤ Ai ≤ 109)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋™์ƒ์˜ ์œ„์น˜๋Š” ๋ชจ๋‘ ๋‹ค๋ฅด๋ฉฐ, ์ˆ˜๋นˆ์ด์˜ ์œ„์น˜์™€ ๊ฐ™์ง€ ์•Š๋‹ค.

์ถœ๋ ฅ

๊ฐ€๋Šฅํ•œ D๊ฐ’์˜ ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

๋™์ƒ์œ„์น˜์™€ ์ˆ˜๋นˆ์ด์œ„์น˜ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋“ค์„ ๊ตฌํ•˜๊ณ  ํ•ด๋‹น ๊ฑฐ๋ฆฌ๋“ค์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.

// Authored by : seondal
// Co-authored by : -

// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int getGcd(int a, int b) { // a<b
    int tmp;
    while(a!=0){
        tmp = b%a;
        b = a;
        a = tmp;
    }
    return b;
}

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    
    int n, s, input;
    cin >> n >> s;
    vector<int> a(n);
    for(int i=0; i<n; i++) {
        cin >> input;
        a[i] = abs(input - s);
    }
    
    int gcd = a[0];
    sort(a.begin(), a.end());
    for(int i=0; i<n; i++)
        gcd = getGcd(gcd, a[i]);
    
    cout << gcd;
    
    return 0;
}

/*
 */
๋ฐ˜์‘ํ˜•