diff options
author | crupest <crupest@outlook.com> | 2021-03-23 19:38:45 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2021-03-23 19:38:45 +0800 |
commit | d0d850a9cbf0b2792c8ed1e01adbe5eb26db8cea (patch) | |
tree | cf39b93567568fee9653baf28d0bc1556e645296 | |
parent | 463230ecaa39fc53829cdbef53150562df4ea414 (diff) | |
download | solutions-d0d850a9cbf0b2792c8ed1e01adbe5eb26db8cea.tar.gz solutions-d0d850a9cbf0b2792c8ed1e01adbe5eb26db8cea.tar.bz2 solutions-d0d850a9cbf0b2792c8ed1e01adbe5eb26db8cea.zip |
Add aacwing 1246.
-rw-r--r-- | acwing/1246.cpp | 34 |
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 |