比赛 |
20161115 |
评测结果 |
AWWWWWWWWW |
题目名称 |
军队 |
最终得分 |
10 |
用户昵称 |
coolkid |
运行时间 |
0.133 s |
代码语言 |
C++ |
内存使用 |
0.70 MiB |
提交时间 |
2016-11-15 11:47:35 |
显示代码纯文本
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- using namespace std;
-
- const int MAXN=1e5+10;
- int A[MAXN],n,k;
-
- int gcd(int a,int b){
- if(!b) return a;
- return gcd(b,a%b);
- }
-
- void init(){
- scanf("%d%d",&n,&k);
- for(int i=1;i<=n;i++) scanf("%d",&A[i]);
- }
-
- int update(int l,int r){
- for(int i=l;i<=r;i++)
- for(int j=i+1;j<=r;j++) if(gcd(A[i],A[j])!=1) return -1;
- return r-l+1;
- }
-
- int ans=0;
- int fst=1;
-
- void work(){
- for(int i=1;i<=n;i++){
- long long sum=A[i];
- int fst=1;
- for(int j=i+1;j<=n;j++){
- sum+=A[j];
- if(sum>=k){
- int temp=0;
- if(fst){
- fst=0;temp=update(i,j);
- }else{
- int flg=1;
- for(int k=j;k>=i;k--) if(gcd(A[k],A[j])!=1){
- temp=-1;flg=0;break;
- }
- if(flg) temp=j-i+1;
- }
- if(temp==-1) break;
- ans=max(temp,ans);
- }
- }
- }
- printf("%d\n",ans);
- }
-
- int main(){
- freopen("tarmy.in","r",stdin);
- freopen("tarmy.out","w",stdout);
- init();
- work();
- return 0;
- }