aboutsummaryrefslogtreecommitdiff
path: root/algorithm-contest-3/code/4.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-04-01 17:56:24 +0800
committercrupest <crupest@outlook.com>2021-04-01 17:56:24 +0800
commit9776bf5191763e77b188bd943adeb6be6230cc4c (patch)
treec22b6fe0a1f5aecfda2943e75e89026811927fb1 /algorithm-contest-3/code/4.cpp
parent0e719917e8b8ba4679c3aad966358448d149711c (diff)
parentfdfe966e8164acd49cb59bc9a1a888a79c6792bb (diff)
downloadlife-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.cpp34
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;
+}