比赛 |
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(){;}