C
题目:https://vjudge.net/contest/436484#problem/C
看到gcd第一反应先写一个函数后面发现好像不用
这个题利用好sort函数,先将数组进行升序排列,再将排列好的数组与原数组比较
#include<stdio.h> #include<algorithm> using namespace std; int a[100002],b[100002],c[100002]; int main() { int t; scanf("%d",&t); while(t--) { int n,flag=1; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); b[i]=a[i]; } sort(b,b+n); int j=0; for(int i=0;i<n;i++) { if(a[i]!=b[i]) { c[j]=a[i]; j++; } } for(int i=0;i<j;i++) { if(c[i]%b[0]!=0) { printf("NO\n"); flag=0;break; } } if(flag==1) printf("YES\n"); } return 0; }