題目鏈接:序列排序
顯然不互質的數的相對位置不會改變。
然後直接nlogn預處理因子爲x的數字有哪些。
按照位置sort即可。
AC代碼:
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
//#define int long long
using namespace std;
const int N=1e5+10;
int n,a[N],pos[N],ok;
vector<int> v[N];
signed main(){
cin>>n; ok=1;
for(int i=1;i<=n;i++) cin>>a[i],pos[a[i]]=i;
for(int i=2;i<=n;i++) for(int j=i;j<=n;j+=i) v[i].push_back(j);
for(int i=2;i<=n;i++){
sort(v[i].begin(),v[i].end(),[](int a,int b){
return pos[a]<pos[b];
});
for(int j=1;j<v[i].size();j++) if(v[i][j]<v[i][j-1]) ok=0;
}
puts(ok?"Yes":"No");
return 0;
}