比赛 20161115 评测结果 AAATTTTTTT
题目名称 军队 最终得分 30
用户昵称 kxxy 运行时间 7.000 s
代码语言 C++ 内存使用 0.75 MiB
提交时间 2016-11-15 09:31:49
显示代码纯文本
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
const int maxn=100010;
ll n,k,v[maxn],sumpeople;
int ans=-1;
inline ll read()
{
	ll x=0;
	char c=getchar();
	while(c>'9'||c<'0')
		c=getchar();
	while(c<='9'&&c>='0')
	{
		x=x*10+c-'0';
		c=getchar();
	}
	return x;
}
inline ll gcd(ll x,ll y)
{
	if(y==0)
		return x;
	else
		return gcd(y,x%y);
}
inline bool judge(int l,int r)
{
	sumpeople=0;
	for(int i=l;i<=r;i++)
	{
		sumpeople+=v[i];
	}
	if(sumpeople>=k)
	{
		for(int i=l;i<=r;i++)
			for(int j=i+1;j<=r;j++)
				if(gcd(v[i],v[j])!=1)
					return 0;
		return 1;
	}
	else
		return 0;
}
int Main()
{
	freopen("tarmy.in","r",stdin);
	freopen("tarmy.out","w",stdout);
	n=read(),k=read();
	for(int i=1;i<=n;i++)
		v[i]=read();
	for(int i=1;i<=n;i++)
	{
		for(int j=i+1;j<=n;j++)
		{
			if(judge(i,j))
				ans=max(ans,j-i+1);
		}
	}
	printf("%d",ans);
	return 0;
}
int cd=Main();
int main(){;}