比赛 20161115 评测结果 AAATTTTTTT
题目名称 军队 最终得分 30
用户昵称 kxxy 运行时间 7.000 s
代码语言 C++ 内存使用 0.75 MiB
提交时间 2016-11-15 09:31:49
显示代码纯文本
  1. #include <iostream>
  2. #include <cstdio>
  3. using namespace std;
  4. typedef long long ll;
  5. const int maxn=100010;
  6. ll n,k,v[maxn],sumpeople;
  7. int ans=-1;
  8. inline ll read()
  9. {
  10. ll x=0;
  11. char c=getchar();
  12. while(c>'9'||c<'0')
  13. c=getchar();
  14. while(c<='9'&&c>='0')
  15. {
  16. x=x*10+c-'0';
  17. c=getchar();
  18. }
  19. return x;
  20. }
  21. inline ll gcd(ll x,ll y)
  22. {
  23. if(y==0)
  24. return x;
  25. else
  26. return gcd(y,x%y);
  27. }
  28. inline bool judge(int l,int r)
  29. {
  30. sumpeople=0;
  31. for(int i=l;i<=r;i++)
  32. {
  33. sumpeople+=v[i];
  34. }
  35. if(sumpeople>=k)
  36. {
  37. for(int i=l;i<=r;i++)
  38. for(int j=i+1;j<=r;j++)
  39. if(gcd(v[i],v[j])!=1)
  40. return 0;
  41. return 1;
  42. }
  43. else
  44. return 0;
  45. }
  46. int Main()
  47. {
  48. freopen("tarmy.in","r",stdin);
  49. freopen("tarmy.out","w",stdout);
  50. n=read(),k=read();
  51. for(int i=1;i<=n;i++)
  52. v[i]=read();
  53. for(int i=1;i<=n;i++)
  54. {
  55. for(int j=i+1;j<=n;j++)
  56. {
  57. if(judge(i,j))
  58. ans=max(ans,j-i+1);
  59. }
  60. }
  61. printf("%d",ans);
  62. return 0;
  63. }
  64. int cd=Main();
  65. int main(){;}