比赛 20240913练习 评测结果 AAAAAAAAAA
题目名称 奶牛排队 最终得分 100
用户昵称 小金 运行时间 0.190 s
代码语言 C++ 内存使用 3.94 MiB
提交时间 2024-09-13 21:33:36
显示代码纯文本
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. using namespace std;
  5. int n,d1=0,d2=0,s1[100010],s2[100010],a[100010],ans=0;
  6. int main()
  7. {
  8. freopen("tahort.in","r",stdin);
  9. freopen("tahort.out","w",stdout);
  10. scanf("%d",&n);
  11. for(int i=1;i<=n;i++)
  12. {
  13. scanf("%d",&a[i]);
  14. while(d1!=0&&a[s1[d1]]>=a[i]) d1--;
  15. while(d2!=0&&a[s2[d2]]<a[i]) d2--;
  16. int k=upper_bound(s1+1,s1+1+d1,s2[d2])-s1;
  17. if(k!=(d1+1))
  18. {
  19. if(ans<i-s1[k]+1) ans=i-s1[k]+1;
  20. }
  21. d1++;
  22. d2++;
  23. s1[d1]=i;
  24. s2[d2]=i;
  25. }
  26. printf("%lld",ans);
  27. return 0;
  28. }