比赛 |
20161115 |
评测结果 |
AAAAAEEEEE |
题目名称 |
军队 |
最终得分 |
50 |
用户昵称 |
Mealy |
运行时间 |
0.825 s |
代码语言 |
C++ |
内存使用 |
30.19 MiB |
提交时间 |
2016-11-15 11:41:58 |
显示代码纯文本
/*
2547. 军队
tarmy.in
*/
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
const int nmax=2086;
ll pre[nmax]={0};
int n,K;
int s[nmax]={0};
int tmp[nmax]={0};
int l[nmax][nmax]={0};
int ans=0;
int c[nmax][nmax]={0};
int GCD(int a,int b)
{
return b==0?a:GCD(b,a%b);
}
void PreDo()
{
scanf("%d%d",&n,&K);
// printf("%d ",GCD(n,K));
for(int i=1;i<=n;i++)
{
scanf("%d",&s[i]);
pre[i]=pre[i-1]+(ll)s[i];
}
/*
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
if(GCD(s[i],s[j])==1)
{
c[j]++;
}
}
}
for(int i=1;i<=n;i++)
{
printf("%d ",c[i]);
}
*/
/*
for(int i=1;i<=n;i++)
{
printf("%d ",s[i]);
}
*/
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
{
/*if(GCD(s[i],s[j])==1)
{
l[i][j]=1;
}
*/
l[i][j]=GCD(s[i],s[j]);
// printf("%d ",GCD(s[i],s[j]));
l[j][i]=l[i][j];
// printf("%d ",l[i][j]);
}
// printf("\n");
}
// for(int )
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
int tag=0;
for(int k=i;k<j;k++)
{
// printf("%d")
if(l[k][j]!=1)
{
tag=1;
break;
}
}
if(tag==0&&pre[j]-pre[i]+s[i]>=K)
{
tmp[i]++;
}
if(tag==1)
{
break;
}
}
}
/*
for(int i=1;i<=n;i++)
{
printf("%d\n",tmp[i]);
}
*/
for(int i=1;i<=n;i++)
{
ans=max(ans,tmp[i]);
}
if(ans==0)
{
printf("%d\n",ans);
}
else
{
printf("%d\n",ans+1);
}
}
int main()
{
freopen("tarmy.in","r",stdin);
freopen("tarmy.out","w",stdout);
PreDo();
return 0;
}