记录编号 349905 评测结果 AAAAAAAAAA
题目名称 军队 最终得分 100
用户昵称 Gravatarzhjian 是否通过 通过
代码语言 C++ 运行时间 0.306 s
提交时间 2016-11-15 13:01:58 内存使用 2.60 MiB
显示代码纯文本
#include<bits/stdc++.h>

#define LL unsigned long long
#define BEG freopen("tarmy.in","r",stdin);freopen("tarmy.out","w",stdout);
#define END fclose(stdin);fclose(stdout);

using namespace std;

const LL N=100005,M=1000000;

LL n,k,s[N],l;
LL sum[N],len[N],maxx=0;

LL gcd(LL x,LL y){
//	cout<<x<<"%%"<<y<<"^^";
	if(x>y)
		swap(x,y);
	LL r=y;
	while(x%y!=0){
		r=x%y;
		x=y;
		y=r;
	}
//	cout<<y<<"!@#"<<endl;
	return y;
}

int main(){
	BEG
	len[0]=1;
	len[1]=1;
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>s[i];
		sum[i]=sum[i-1]+s[i];
		int j;
		for(j=1;j<=len[i-1];j++){
			if(gcd(s[i],s[i-j])!=1||i-j==0){
				len[i]=j+1;
		//		cout<<len[i]-1<<"-- ";
				break;
			}
		}
		if(len[i]==0)
			len[i]=j;
	}
	int maxx=1,ma;
	for(int i=1;i<=n;i++){
		len[i]--;
		if(len[i]>maxx&&(sum[i]-sum[i-len[i]]>=k))
			maxx=len[i],ma=sum[i]-sum[i-len[i]];
	}
	cout<<maxx/*<<" "<<ma*/;
	
	END
	return 0;
}