记录编号 |
350166 |
评测结果 |
AAAAAAAAAA |
题目名称 |
军队 |
最终得分 |
100 |
用户昵称 |
srO cwm Orz |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.168 s |
提交时间 |
2016-11-15 16:27:52 |
内存使用 |
1.46 MiB |
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
#define debug(x) cout << #x << ":" << x << '\n';
const int maxn = 100010;
int s[maxn];
int n,k;
int ans = -1;
long long sum[maxn];
int gcd(int a,int b){return b==0 ? a:gcd(b, a%b);}
int main()
{
#ifndef DEBUG
string Filename="tarmy";
freopen((Filename+".in").c_str(),"r",stdin);
freopen((Filename+".out").c_str(),"w",stdout);
#endif
scanf("%d%d",&n,&k);
for(int i = 1; i <= n; i++)scanf("%d",&s[i]), sum[i] = sum[i-1]+s[i];
int l=1,r=1;
while(r <= n){
for(int i = r-1; i >= l; i--){
if(gcd(s[i],s[r]) != 1){
l=i;
break;
}
}
if(sum[r]-sum[l] >= k) ans = max(ans,r-l);
r++;
}
printf("%d",ans == -1 ? 0 : ans);
}