【nowcoder】 4th T2 区间
题目链接:https://www.nowcoder.com/acm/contest/175/B
当你为时间复杂度挠头的时候 别人已经33行拿满分了


1 #include<cstdio> 2 #include<algorithm> 3 #define N 4000010 4 using namespace std; 5 typedef long long ll; 6 7 ll Read(){ 8 ll xx=0,ff=1;char ch=getchar(); 9 while(ch>'9'||ch<'0') {if(ch=='-') ff=-1;ch=getchar();} 10 while(ch<='9'&&ch>='0') {xx=(xx<<3)+(xx<<1)+ch-'0';ch=getchar();} 11 return xx*ff; 12 } 13 14 ll n,inp[N]; 15 int res,ans[N]; 16 17 int main(){ 18 n=Read(); 19 for(register int i=1;i<=n;i++) 20 inp[i]=Read(); 21 for(register int i=1,r=1;i<=n;++i){ 22 if(r<i) r=i; 23 while(r<n&&inp[r+1]%inp[i]==0) r++; 24 ans[i]=r; 25 } 26 for(register int i=n,l=n;i>0;--i){ 27 if(l>i) l=i; 28 while(l>1&&inp[l-1]%inp[i]==0) l--; 29 res=max(res,ans[i]-l+1); 30 } 31 printf("%d",res); 32 return 0; 33 }
浙公网安备 33010602011771号