https://www.acmicpc.net/problem/2981
๋ฌธ์
ํธ๋ญ์ ํ๊ณ ์ด๋ํ๋ ์๊ทผ์ด๋ ๊ฒฝ์ฐฐ์ ๊ฒ๋ฌธ์ ๋ฐ๊ฒ ๋์๋ค. ๊ฒฝ์ฐฐ์ ์๊ทผ์ด๊ฐ ์ด๋ฐํ๋ ํ๋ฌผ์ ํ๋ํ๋ ๋ชจ๋ ํ์ธํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์, ๊ฒ๋ฌธํ๋๋ฐ ์์ฒญ๋๊ฒ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
์๊ทผ์ด๋ ์๊ฐ์ ๋์ฐ๊ธฐ ์ํด์ ์ํ ๊ฒ์์ ํ๊ธฐ๋ก ํ๋ค.
๋จผ์ ๊ทผ์ฒ์ ๋ณด์ด๋ ์ซ์ N๊ฐ๋ฅผ ์ข ์ด์ ์ ๋๋ค. ๊ทธ ๋ค์, ์ข ์ด์ ์ ์ ์๋ฅผ M์ผ๋ก ๋๋์์ ๋, ๋๋จธ์ง๊ฐ ๋ชจ๋ ๊ฐ๊ฒ ๋๋ M์ ๋ชจ๋ ์ฐพ์ผ๋ ค๊ณ ํ๋ค. M์ 1๋ณด๋ค ์ปค์ผ ํ๋ค.
N๊ฐ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ๊ฐ๋ฅํ M์ ๋ชจ๋ ์ฐพ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ข ์ด์ ์ ์ ์์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. (2 ≤ N ≤ 100)
๋ค์ ์ค๋ถํฐ N๊ฐ ์ค์๋ ์ข ์ด์ ์ ์ ์๊ฐ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ด ์๋ ๋ชจ๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 1,000,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ๊ฐ์ ์๊ฐ ๋ ๋ฒ ์ด์ ์ฃผ์ด์ง์ง ์๋๋ค.
ํญ์ M์ด ํ๋ ์ด์ ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๊ฐ๋ฅํ M์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ๋ชจ๋ ์ถ๋ ฅํ๋ค. ์ด๋, M์ ์ฆ๊ฐํ๋ ์์์ด์ด์ผ ํ๋ค.
ํ์ด
a์ b๋ฅผ c๋ก ๋๋ ๋๋จธ์ง๊ฐ ๊ฐ๋ค๋ฉด, a-b๋ c์ ๋ฐฐ์์ด๋ค.
์ด ํํธ๋ฅผ ๋ณด๊ณ ๋ฌธ์ ๋ฅผ ํ์ดํ์
๋ฐ์ ์๋ค์ ์ฐจ์ด๋ค์ ์๋ก์ด ๋ฒกํฐ vv ์ ์ ์ฅํ๊ณ
ํด๋น ๋ฒกํฐ vv์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ค,
์ต๋๊ณต์ฝ์์ ์ฝ์๋ค์ ๊ตฌํ์๋ค
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int getGcd(int a, int 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;
cin >> n;
vector<int> v(n);
for(int i=0; i<n; i++)
cin >> v[i];
// vv[i] = v[i-1] - v[i-2]
sort(v.begin(), v.end());
vector<int> vv;
for(int i=1; i<n; i++)
vv.push_back(v[i]-v[i-1]);
// ์ต๋๊ณต์ฝ์ ๊ตฌํ๊ธฐ
sort(vv.begin(), vv.end());
int gcd = vv[0];
for(int i=1; i<vv.size(); i++)
gcd = getGcd(gcd, vv[i]);
// ๋์จ ์ต๋ ๊ณต์ฝ์์ ์ฝ์ ๊ตฌํ๊ธฐ
vector<int> ans;
for(int i=1; i<=sqrt(gcd); i++) {
if(gcd % i != 0)
continue;
ans.push_back(i);
if(i != gcd/i)
ans.push_back(gcd/i);
}
sort(ans.begin(), ans.end());
// ์ถ๋ ฅ
for(int i=0; i<ans.size(); i++) {
if(ans[i] == 1)
continue;
cout << ans[i] << " ";
}
return 0;
}
/*
*/
'๐๏ธ ICPC Sinchon > Basic Math' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ][C++] ๋ฐฑ์ค 2168๋ฒ: ํ์ผ ์์ ๋๊ฐ์ (0) | 2023.05.31 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 2108๋ฒ: ํต๊ณํ (0) | 2023.05.30 |
[BOJ][C++] ๋ฐฑ์ค 17087๋ฒ: ์จ๋ฐ๊ผญ์ง 6 (0) | 2023.01.24 |
[BOJ][C++] ๋ฐฑ์ค 20003๋ฒ: ๊ฑฐ์ค๋ฆ๋์ด ์ซ์ด์ (0) | 2023.01.24 |
[BOJ][C++] ๋ฐฑ์ค 13241๋ฒ: ์ต์๊ณต๋ฐฐ์ (0) | 2023.01.24 |