代码改变世界

Sicily/2682. Die Hard 4

2011-07-28 02:17  Min·zc  阅读(242)  评论(0编辑  收藏  举报

水在各个容器之间折腾,不管加减,最后的结果一定是二者的最大公约数的倍数

如果给定的容器的最大公约数与目标是互质的,那么就不能完成



#include <iostream>

#include <memory.h>
using namespace std;
int item[110];
int gcd(int a,int b)
{
        if(b==0)
                return a;
        else
                return gcd(b,a%b);
}
int main()
{
        int n;
        while(cin>>n&&n!=0)
        {
                for(int i=0;i<n;i++)
                        cin>>item[i];
                int g=gcd(item[0],item[1]);
                for(int i=2;i<n;i++)
                        g=gcd(item[i],g);
                long long w;
                cin>>w;
                if(w%g==0)
                        cout<<"YES"<<endl;
                else
                        cout<<"NO"<<endl;
        }
}