题意:给一堆数ai,求S=Σxiai,使得S最小且为正整数
根据裴蜀定理,一定存在ax+by=gcd(a,b),同理可以推广到n个整数
也就是说,在不考虑正负的情况下,所有数的gcd就是所求
#include<iostream> #include<cstdio> using namespace std; typedef long long ll; inline ll rd(){ ll ret=0;char c; while(c=getchar(),!isdigit(c)); while(isdigit(c))ret=ret*10+c-'0',c=getchar(); return ret; } ll n,a; ll gcd(ll x,ll y){return y==0?x:gcd(y,x%y);} int main(){ n=rd();a=rd(); for(int i=2;i<=n;i++) a=gcd(a,rd()); printf("%lld",a); }