比赛 20161115 评测结果 AAAAAAAAAA
题目名称 军队 最终得分 100
用户昵称 Bravo ChaoS 运行时间 0.435 s
代码语言 C++ 内存使用 1.40 MiB
提交时间 2016-11-15 11:54:02
显示代码纯文本
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. #include<iostream>
  5. using namespace std;
  6.  
  7. class input
  8. {
  9. public:
  10. input& operator >> (int& x)
  11. {
  12. char c=' ';x=0;bool flag=0;
  13. for(;c<'0' || c>'9';c=getchar()) if(c=='-') flag=1;
  14. for(;c>='0' && c<='9';c=getchar()) x=x*10+c-'0';
  15. if(flag) x=-x;
  16. return *this;
  17. }
  18. }in;
  19.  
  20. typedef long long ll;
  21. const int maxn=100010;
  22.  
  23. int n,k,a[maxn],cnt(0),len(0);
  24. bool vis[maxn];
  25. ll sum[maxn],temp(1);
  26.  
  27. ll gcd(ll a,ll b) {return b?gcd(b,a%b):a;}
  28.  
  29. void Pre()
  30. {
  31. for(int i=1,l(1);i<=n;++i)
  32. {
  33. if(!len && a[i]>=k) len=1;
  34. for(int j=l;j<i;++j) if(!vis[i])
  35. {
  36. // cout<<i-1<<' '<<l<<endl;
  37. if(gcd(a[i],a[j])!=1)
  38. {
  39. vis[j]=1;
  40. if(sum[i-1]-sum[l-1]>=k && len<i-l) len=i-l;
  41. l=j+1;
  42. }
  43. }
  44. }
  45. }
  46.  
  47. int main()
  48. {
  49. freopen("tarmy.in","r",stdin);
  50. freopen("tarmy.out","w",stdout);
  51. in>>n>>k;
  52. for(int i=1;i<=n;++i) in>>a[i],sum[i]=sum[i-1]+a[i];
  53. Pre();
  54. printf("%d\n",len);
  55. fclose(stdin); fclose(stdout);
  56. return 0;
  57. }
  58.  
  59.  
  60.