您的位置:首页 > 大数据 > 人工智能

Codeforces Round #209 (Div. 2), problem: (D) Pair of Numbers

2013-11-09 16:38 393 查看
# 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 非常重要
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: