bzoj1441 MIN

Description

给出n个数(A1…An)现求一组整数序列(X1…Xn)使得S=A1*X1+…An*Xn>0,且S的值最小

Input

第一行给出数字N,代表有N个数 下面一行给出N个数

Output

S的最小值

Sample Input

2
4059 -1782

Sample Output

99

题解

裴蜀定理

 

#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int gcd(int x,int y){return y==0?x:gcd(y,x%y);}
int n,ans;
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
       {int x;scanf("%d",&x);ans=gcd(ans,x);}
    printf("%d",abs(ans));
    return 0;
}

 

posted @ 2016-08-21 23:48  ACforever  阅读(150)  评论(0编辑  收藏  举报