AcWing 1246. 等差数列
原题链接
中等
作者:
最后五分钟
,
2024-04-03 18:54:52
,
所有人可见
,
阅读 5
#include<bits/stdc++.h>
#define LL long long
#define x first
#define y second
#define de(x) cout<<#x<<" = "<<x<<" "
#define deg(x) cout<<#x<<" = "<<x<<endl
using namespace std;
const int N=100010,M=10010;
typedef pair<int,int> PII;
int s[N];
int a[N];
int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin>>n;
for(int i=1;i<=n;i++)cin>>s[i];
sort(s+1,s+1+n);
for(int i=1;i<=n;i++)a[i]=s[i]-s[i-1];
int d=a[2];
if(d==0)
{
cout<<n<<endl;
return 0;
}
for(int i=2;i<=n;i++)
{
d=gcd(d,a[i]);
}
cout<<(s[n]-s[1])/d+1<<endl;
return 0;
}