P10183 Running 题解
T_TLucas_Yin · · 题解
公路跑拉爆全班。
时间距离公式:
转换一下:
我们可以把每个商店到起点的距离看成一个
到每个商店的时间都是整数,所以对于每个
速度尽可能大。所以
但是在这种情况下,所有
再看一眼公式,若等式右边的分母
现在时间
综上,算出到每个商店的距离的最大公因数后,除以
#include<bits/stdc++.h>
using namespace std;
long long n,a[2000005],sum=0;
long long gcd(long long a,long long b){
if(b==0) return a;
else return gcd(b,a%b);
}
int main(){
scanf("%lld",&n);
for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
for(int i=1;i<=n;i++) sum=gcd(min(sum,a[i]),max(sum,a[i]));
if(sum%2==0) printf("%lld",sum>>1);//通过余数判断有无解
else printf("-1");
return 0;
}