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

解法: 裴蜀定理

http://blog.csdn.net/u010850285/article/details/44889049

///BZOJ 1441

#include <bits/stdc++.h>
using namespace std;

int n, ans;
int gcd(int x, int y){
    return y==0?x:gcd(y,x%y);
}

int main(){
    scanf("%d", &n);
    for(int i=1; i<=n; i++){
        int x;
        scanf("%d", &x);
        ans = gcd(ans, x);
    }
    cout<<abs(ans)<<endl;
}