diff options
author | crupest <crupest@outlook.com> | 2021-04-01 17:56:24 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-04-01 17:56:24 +0800 |
commit | 9776bf5191763e77b188bd943adeb6be6230cc4c (patch) | |
tree | c22b6fe0a1f5aecfda2943e75e89026811927fb1 /algorithm-contest-3/code/4.cpp | |
parent | 0e719917e8b8ba4679c3aad966358448d149711c (diff) | |
parent | fdfe966e8164acd49cb59bc9a1a888a79c6792bb (diff) | |
download | life-9776bf5191763e77b188bd943adeb6be6230cc4c.tar.gz life-9776bf5191763e77b188bd943adeb6be6230cc4c.tar.bz2 life-9776bf5191763e77b188bd943adeb6be6230cc4c.zip |
Merge remote-tracking branch 'origin/ac3'
Diffstat (limited to 'algorithm-contest-3/code/4.cpp')
-rw-r--r-- | algorithm-contest-3/code/4.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/algorithm-contest-3/code/4.cpp b/algorithm-contest-3/code/4.cpp new file mode 100644 index 0000000..aebd735 --- /dev/null +++ b/algorithm-contest-3/code/4.cpp @@ -0,0 +1,34 @@ +#include <algorithm> +#include <iostream> +#include <numeric> + +int gcd(int a, int b) { return b ? gcd(b, a % b) : a; } + +int N; +int A[100010]; + +int main() { + std::ios_base::sync_with_stdio(false); + std::cin.tie(nullptr); + + std::cin >> N; + + for (int i = 0; i < N; i++) { + std::cin >> A[i]; + } + + std::sort(A, A + N); + + int g = A[1] - A[0]; + for (int i = 1; i < N - 1; i++) { + g = gcd(g, A[i + 1] - A[i]); + } + + if (g == 0) { + std::cout << N; + } else { + std::cout << (A[N - 1] - A[0]) / g + 1; + } + + return 0; +} |