• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

C-3

开发技术 开发技术 2周前 (05-04) 14次浏览

题目链接:https://vjudge.net/contest/436484#problem/C

1.gcd找出最大公因数(其实可以不找)

2.数组中最小值为所需最大公因数

3.升序排序,与原数组比较,调换对应编号的数即可

以下代码:

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<algorithm>
using namespace std;
int main()
{
    int i,j,n,m,a[100010],b[100010],c[100010],min,flag;
    cin>>n;
    while(n--){
        flag=0;
        cin>>m;
        for(i=0;i<m;i++)
        {
            cin>>a[i];
            b[i]=a[i];
        }
        sort(b,b+m);
        min=b[0];
        for(i=0,j=0;i<m;i++)
        {
            if(a[i]!=b[i]){
                if(a[i]%min!=0){
                cout<<"NO"<<endl;
                flag=1;
                break;
            	}
            }
			if(flag==1){
				break;
			}   
        }
        if(flag!=1)
        cout<<"YES"<<endl;
    }
        return 0;
}

  


程序员灯塔
转载请注明原文链接:C-3
喜欢 (0)