3 条题解
- 
  0
#include<iostream> #include<algorithm> using namespace std; const int N=1e6+10; int t,a[N],b[N]; int main(){ //freopen("interval.in","r",stdin); //freopen("interval.out","w",stdout); cin>>t; while(t--){ int n; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<n;i++) b[i]=a[i+1]-a[i]; int v=b[1]; for(int i=2;i<n;i++){ if(b[i]==0){ v=0; break; } v=__gcd(v,b[i]); } int flog=1; for(int i=2;i<=n;i++){ if(a[1]!=a[i]){ flog=0; break; } } if(v==0 && !flog){ cout<<"-1"<<endl; continue; } if(flog){ cout<<0<<endl; continue; } int ans=0; for(int i=1;i<n;i++){ ans+=(b[i]-v)/v; } cout<<ans<<endl; } return 0; } 
信息
- ID
 - 2867
 - 时间
 - 1000ms
 - 内存
 - 256MiB
 - 难度
 - 7
 - 标签
 - 递交数
 - 129
 - 已通过
 - 25
 - 上传者