您的位置:首页 > 其它

L - Fox and Number Game

2014-08-24 19:11 274 查看
L - Fox and Number Game
Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d
& %I64u
Submit Status

Description

Fox Ciel is playing a game with numbers now.

Ciel has n positive integers: x1, x2,
..., xn. She can do the following operation as many times as needed: select two different indexes iand j such
that xi > xj hold, and then apply assignment xi = xi - xj.
The goal is to make the sum of all numbers as small as possible.

Please help Ciel to find this minimal sum.

Input

The first line contains an integer n (2 ≤ n ≤ 100). Then the second line contains n integers: x1, x2,
..., xn (1 ≤ xi ≤ 100).

Output

Output a single integer — the required minimal sum.

Sample Input

Input
2
1 2


Output
2


Input
3
2 4 6


Output
6


Input
212 18


Output
12


Input
5
45 12 27 30 18


Output
15


Hint

In the first example the optimal way is to do the assignment: x2 = x2 - x1.

In the second example the optimal sequence of operations is: x3 = x3 - x2, x2 = x2 - x1.

简单的数学题,看网上写的用的什么优先排列,其实根本没必要

ac代码如下:

#include<stdio.h>

int Euclidean(int a,int b)

{

    if(a<b)

    {

        int t;

        t=a;

        a=b;

        b=t;

    }

    if(a%b==0)

        return b;

    else

    {

        while(a%b!=0)

        {

            int r;

            r=a%b;

            a=b;

            b=r;

        }

        return b;

    }

}//辗转相除法求最大公因数

int main()

{

    int n,a,b,t;

    while(scanf("%d",&n)!=EOF)

    {

        int k=n;

        scanf("%d",&a);

        n=n-1;

        t=a;

        while(n--)

        {

           scanf("%d",&b);

           t=Euclidean(t,b);

        }

        printf("%d\n",t*k);

    }

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: