比赛 20161115 评测结果 AWWWWWWWWW
题目名称 军队 最终得分 10
用户昵称 coolkid 运行时间 0.133 s
代码语言 C++ 内存使用 0.70 MiB
提交时间 2016-11-15 11:47:35
显示代码纯文本
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. using namespace std;
  6.  
  7. const int MAXN=1e5+10;
  8. int A[MAXN],n,k;
  9.  
  10. int gcd(int a,int b){
  11. if(!b) return a;
  12. return gcd(b,a%b);
  13. }
  14.  
  15. void init(){
  16. scanf("%d%d",&n,&k);
  17. for(int i=1;i<=n;i++) scanf("%d",&A[i]);
  18. }
  19.  
  20. int update(int l,int r){
  21. for(int i=l;i<=r;i++)
  22. for(int j=i+1;j<=r;j++) if(gcd(A[i],A[j])!=1) return -1;
  23. return r-l+1;
  24. }
  25.  
  26. int ans=0;
  27. int fst=1;
  28.  
  29. void work(){
  30. for(int i=1;i<=n;i++){
  31. long long sum=A[i];
  32. int fst=1;
  33. for(int j=i+1;j<=n;j++){
  34. sum+=A[j];
  35. if(sum>=k){
  36. int temp=0;
  37. if(fst){
  38. fst=0;temp=update(i,j);
  39. }else{
  40. int flg=1;
  41. for(int k=j;k>=i;k--) if(gcd(A[k],A[j])!=1){
  42. temp=-1;flg=0;break;
  43. }
  44. if(flg) temp=j-i+1;
  45. }
  46. if(temp==-1) break;
  47. ans=max(temp,ans);
  48. }
  49. }
  50. }
  51. printf("%d\n",ans);
  52. }
  53.  
  54. int main(){
  55. freopen("tarmy.in","r",stdin);
  56. freopen("tarmy.out","w",stdout);
  57. init();
  58. work();
  59. return 0;
  60. }