记录编号 350449 评测结果 AAATTTTTTT
题目名称 军队 最终得分 30
用户昵称 Gravatar粘粘自喜 是否通过 未通过
代码语言 C++ 运行时间 7.091 s
提交时间 2016-11-15 19:34:21 内存使用 1.08 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=1e5+100;
int gcd(int a,int b)
{
	if(b==0) return a;
	else return gcd(b,a%b);
}
int n,k;
bool flag;
int sum[maxn];
int ans=-1;
int a[maxn];
int main()
{
	freopen("tarmy.in","r",stdin);
	freopen("tarmy.out","w",stdout);
	int r;
	cin>>n>>k;
	for(int i=1;i<=n;++i) {scanf("%d",&a[i]);sum[i]=sum[i-1]+a[i];}
	for(r=n;r>1;r--)
	{
		flag=0;
		int l=1;
		while(l<r)
		{
			for(int i=l;i<r;++i)
			for(int j=i+1;j<=r;++j) if(gcd(a[i],a[j])!=1) {flag=1;break;}
			if(flag) l++,flag=0;
			else {if(sum[r]-sum[l-1]>=k){ans=max(ans,r-l+1);}break;}
		}
	}
	cout<<ans<<endl;
	return 0;
}