# include <stdio.h>
# include <string.h>
int main ()
{
int n,i;
int a[300005],ans[300005];
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
int max=-1,num=1;
a[0]=1000000007;
for(i=1;i<=n;)
{
int l,r;
l=r=i;
while(l>=1) {if(a[l]%a[i]==0) l--;else break;}
l++;
while(r<=n) {if(a[r]%a[i]==0) r++;else break;}
r--;
if(r-l>max)
{
max=r-l;
// memset(ans,0,sizeof(0));
num=1;
ans[num]=l;
}
else if(r-l==max&&l!=ans[num])
{
num++;
ans[num]=l;
}
i=r+1;
}
printf("%d %d\n",num,max);
for(i=1;i<num;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[num]);
return 0;
}
注意其中非常重要的一步 就是i=r+1 非常重要
Codeforces Round #209 (Div. 2), problem: (D) Pair of Numbers
最新推荐文章于 2024-08-31 10:23:18 发布