当前位置:   article > 正文

CodeForces CF1352D Alice, Bob and Candies 模拟题_codeforces 模拟题

codeforces 模拟题

下为代码。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. const int N = 1e5 + 10;
  4. int nums[N];
  5. void solve(){
  6. int n;
  7. cin >> n;
  8. for(int i = 1; i <= n; i++) cin >> nums[i];
  9. //输入数组
  10. int l = 1,r = n,lsum = 0,rsum = 0,res = 0,be = 0;
  11. //l为左坐标,r为右坐标,lsum为左边和,rsum为右边和
  12. //res为移动次数
  13. while(l <= r){
  14. res++;
  15. int tmp = 0;
  16. while(l <= r && tmp <= be){
  17. //当左边和大于右边和跳出
  18. tmp += nums[l];
  19. lsum += nums[l];
  20. l++;
  21. }
  22. be = tmp;
  23. //be此时为左边和
  24. if(l > r) break;
  25. res++;
  26. tmp = 0;
  27. while(l <= r && tmp <= be){
  28. //当右边和大于左边和时跳出
  29. tmp += nums[r];
  30. rsum += nums[r];
  31. r--;
  32. }
  33. be = tmp;
  34. //be此时为右边和
  35. }
  36. cout << res << ' ' << lsum << ' ' << rsum << '\n';
  37. }
  38. int main(){
  39. ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
  40. int q;
  41. cin >> q;
  42. while(q--)
  43. solve();
  44. return 0;
  45. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/75808
推荐阅读
相关标签
  

闽ICP备14008679号