当前位置:   article > 正文

乐鑫提前批编程题 7.6_鑫池刘鑫池 yiew navigate code relactor rn tools vcs win

鑫池刘鑫池 yiew navigate code relactor rn tools vcs window help day06筛d

第一题,一个老头分财产,老大拿最大的,老二拿第二大。接下来总财产小的拿,如果一样就老大拿,判断最后多的比少的多拿多少?

双指针

  1. #include<iostream>
  2. #include<vector>
  3. #include<algorithm>
  4. using namespace std;
  5. int main()
  6. {
  7. int n;
  8. cin >> n;
  9. vector<int>vec(2*n);
  10. for (int k = 0; k < 2 * n; k++)
  11. {
  12. cin>>vec[k];
  13. }
  14. sort(vec.begin(), vec.end());
  15. //双指针
  16. int i = vec.size() - 1, j = vec.size() - 2;
  17. int son1 = vec[i], son2 =vec[j];
  18. while (i > 0 && j > 0)
  19. {
  20. if (son1 > son2)
  21. {
  22. j--;
  23. i -= 3;
  24. son1 = son1 + vec[i];
  25. son2 = son2 + vec[j];
  26. }
  27. else
  28. {
  29. i--;
  30. j -= 3;
  31. son1 = son1 + vec[i];
  32. son2 = son2 + vec[j];
  33. }
  34. }
  35. cout << son1 - son2;
  36. }


            

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号