summaryrefslogtreecommitdiff
path: root/acwing
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-03-23 19:38:45 +0800
committercrupest <crupest@outlook.com>2021-03-23 19:38:45 +0800
commitd0d850a9cbf0b2792c8ed1e01adbe5eb26db8cea (patch)
treecf39b93567568fee9653baf28d0bc1556e645296 /acwing
parent463230ecaa39fc53829cdbef53150562df4ea414 (diff)
downloadsolutions-d0d850a9cbf0b2792c8ed1e01adbe5eb26db8cea.tar.gz
solutions-d0d850a9cbf0b2792c8ed1e01adbe5eb26db8cea.tar.bz2
solutions-d0d850a9cbf0b2792c8ed1e01adbe5eb26db8cea.zip
Add aacwing 1246.
Diffstat (limited to 'acwing')
-rw-r--r--acwing/1246.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/acwing/1246.cpp b/acwing/1246.cpp
new file mode 100644
index 0000000..5c0454c
--- /dev/null
+++ b/acwing/1246.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;
+} \ No newline at end of file