记录编号 |
349842 |
评测结果 |
AAAAAAAAAA |
题目名称 |
军队 |
最终得分 |
100 |
用户昵称 |
Lethur |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.235 s |
提交时间 |
2016-11-15 12:05:54 |
内存使用 |
1.46 MiB |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define LL long long
const int maxn=100000+10;
const int INF=0x3f3f3f3f;
int n, ans, a[maxn];
LL h[maxn], k;
inline int gcd(int a, int b) {
return b==0 ? a : gcd(b, a%b);
}
int main() {
freopen("tarmy.in", "r", stdin);
freopen("tarmy.out", "w", stdout);
scanf("%d%lld", &n, &k);
for(int i=1; i<=n; i++) scanf("%d", &a[i]), h[i]=h[i-1]+a[i];
int L=1, R=1;
while(R<=n) {
bool flag=1;
int se=0;
while(flag) {
R++;
for(int i=R-1; i>=L; i--) {
if(gcd(a[i], a[R])!=1) {
flag=0; se=i; break;
}
}
}
if(h[R-1]-h[L-1]>=k) ans=max(ans, R-L);
L=se+1;
}
printf("%d\n", ans);
return 0;
}