Codeforces Round #547 (Div. 3) B.Maximal Continuous Rest

ゝ一世哀愁。 2021-12-23 11:31 256阅读 0赞

链接:https://codeforces.com/contest/1141/problem/B

题意:

给n个数,0代表工作,1代表休息,求能连续最大的休息长度。

可以连接首尾。

思路:

求普通连续,当第一个时间和最后一个时间都休息的时候加上去判断一下。

代码:

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long LL;
  4. const int MAXN = 2e5;
  5. int r[MAXN];
  6. int main()
  7. {
  8. int flag = 1;
  9. int n, o;
  10. int pos = 1;
  11. int res = 0;
  12. cin >> n;
  13. for (int i = 1;i <= n;i++)
  14. {
  15. cin >> o;
  16. if (o == 1)
  17. r[pos]++;
  18. else
  19. pos++;
  20. if (i == 1 && o == 0)
  21. flag = 0;
  22. if (i == n && o == 0)
  23. flag = 0;
  24. res = max(res, r[pos]);
  25. }
  26. if (flag)
  27. res = max(res, r[1] + r[pos]);
  28. cout << res << endl;
  29. return 0;
  30. }

  

转载于:https://www.cnblogs.com/YDDDD/p/10570950.html

发表评论

表情:
评论列表 (有 0 条评论,256人围观)

还没有评论,来说两句吧...

相关阅读