比赛 20161115 评测结果 AAAAAAAAAA
题目名称 军队 最终得分 100
用户昵称 NVIDIA 运行时间 0.153 s
代码语言 C++ 内存使用 1.08 MiB
提交时间 2016-11-15 12:25:13
显示代码纯文本
#include<iostream>
#include<cstdio>

using namespace std;

typedef long long ll;

const int maxn = 100000 + 100;

int n;
ll k;

int A[maxn];

int sum[maxn];

int k1;

int kount = 1;

int ans = 0;

inline int gcd(int x,int y)
{
	if(y == 0)
	{
		return x;
	}
	if(x < y)
	{
		return gcd(y,x);
	}
	else
	{
		return gcd(y,x % y);
	}
}

int main()
{
	freopen("tarmy.in","r",stdin);
	freopen("tarmy.out","w",stdout);
	scanf("%d%d",&n,&k);
	scanf("%d",&A[1]);
	for(int i = 2;i <= n ;i ++)
	{
		scanf("%d",&A[i]);
		sum[0] = 0;
		sum[1] = A[1];
		sum[i] = sum[i - 1] + A[i];
		k1 = i - kount;
		for(int j = i - 1;j >= k1 ;j --)
		{
			if(gcd(A[i],A[j]) != 1)
			{
				k1 = j + 1;
				break;
			}
		}
		kount = i - k1 + 1;
		if(sum[i] - sum[k1 - 1] >= k)
		{
			ans = max(ans,kount);
		}
	}
	cout<<ans;
	return 0;
}