五一训练C-3

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

学好英语很重要呀,不然gcd都看不懂

这个题要使交换后没有降序排列,那就把输入的数组先进行排序,然后与输入的数组比对,得到一个新的数组,如果这个数组的全是gcd(x,y)的倍数,那么输出yes,否则no

#include<stdio.h>
#include <iostream>
#include<algorithm>
using namespace std;
int main(){
    int t,n,a[100005],b[100005],c[100005];
    scanf("%d",&t);
    for(int i=0;i<t;i++){
        int min,d=0,e=1;
        scanf("%d",&n);
        for(int j=0;j<n;j++){
            scanf("%d",&a[j]);
            b[j]=a[j];
        }
        sort(b,b+n);
        for(int k=0;k<n;k++){
            if(a[k]!=b[k]){
                c[d]=a[k];
                d++;
            }
        }
        for(int l=0;l<d;l++){
        
                if(c[l]%b[0]!=0){
                    e=0;
                    printf("NO\n");
                    break;
                }
            }
            if(e){
                printf("YES\n");
            }
    }
    return 0;
}

 

上一篇:通过javascript,使用struts2的ognl获取JavaBean的属性.


下一篇:递增三元组|2018年蓝桥杯B组题解析第六题