题意
给定n个数,给定操作
选择2<=i<=n,令a[i]=a[i]-a[i-1]
问通过上述操作,能否使a[i]=0,2<=i<=n。
思路
观察发现,a[1]是其他元素的因子,才能满足题意。易证。
代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn = 200010;
const int mod = 1e9 + 7;
int n;
int a[maxn];
void solve() {
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
scanf("%d", &a[i]);
}
bool flag = true;
for (int i = 1; i < n; ++i) {
if (a[i] % a[0]) {
flag = false;
break;
}
}
printf("%s\n", flag ? "YES" : "NO");
}
int main() {
int t;
scanf("%d", &t);
while (t--) {
solve();
}
}