比赛 20120419s 评测结果 AAAAAAAAAA
题目名称 河床 最终得分 100
用户昵称 Makazeu 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2012-04-19 11:18:14
显示代码纯文本
  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <cstring>
  4. using namespace std;
  5. int N,K,H[30001];
  6.  
  7. inline int Min(int a,int b) {return a<b?a:b;}
  8. inline int Max(int a,int b) {return a>b?a:b;}
  9.  
  10. inline void init()
  11. {
  12. scanf("%d %d\n",&N,&K);
  13. for(int i=1;i<=N;i++) scanf("%d",H+i);
  14. }
  15.  
  16. inline void work()
  17. {
  18. int min,max,del,ans=1;
  19. for(int i=1;i+ans+1<=N;i++)
  20. {
  21. int res=1; min=H[i],max=H[i];
  22. for(int j=i+1;j<=N;j++)
  23. {
  24. min=Min(min,H[j]);
  25. max=Max(max,H[j]);
  26. del=max-min;
  27. if(del>K) break;
  28. res++;
  29. }
  30. ans=Max(ans,res);
  31. }
  32. printf("%d\n",ans);
  33. }
  34.  
  35. int main()
  36. {
  37. freopen("riverbed.in","r",stdin);
  38. freopen("riverbed.out","w",stdout);
  39. init();
  40. work();
  41. return 0;
  42. }