能过[CodeForces-474F](1≤n≤105)和一道目前不知道题号的题(1≤n≤3⋅105)。
#include<bits/stdc++.h>
using namespace std;
#define N 300005
int n;
int a[N];
int L[N],R[N];
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
for(int i=1;i<=n;i++){
L[i]=i;
for(int j=i-1;j>=1;j--){
if(a[j]%a[i]!=0)break;
else if(a[j]==a[i]){
L[i]=L[j];
break;
}
L[i]=j;
}
}
for(int i=n;i>=1;i--){
R[i]=i;
for(int j=i+1;j<=n;j++){
if(a[j]%a[i]!=0)break;
else if(a[j]==a[i]){
R[i]=R[j];
break;
}
R[i]=j;
}
}
return 0;
}