fork download
  1. #include <algorithm>
  2. #include <iomanip>
  3. #include <iostream>
  4. #include <vector>
  5. #include <set>
  6. #include <numeric>
  7. #include <map>
  8. #include <unordered_map>
  9. using namespace std;
  10. #define all(a) a.begin(), a.end()
  11. #define ll long long
  12. #define fo(i,n) for (long long i = 0; i < n; i++)
  13.  
  14. int main()
  15. {
  16. ll n,m,input;
  17. ios_base::sync_with_stdio(false);
  18. cin.tie(0); cout.tie(0);
  19. cin >> n >> m;
  20. vector<ll> black(n);
  21. vector<ll> white(m);
  22. fo(j,n)
  23. {
  24. cin >> black[j];
  25. }
  26. fo(j,m)
  27. {
  28. cin >> white[j];
  29. }
  30. sort(all(black),std::greater<int>());
  31. sort(all(white),std::greater<int>());
  32. ll used1 = 0;
  33. ll used2 = 0;
  34. ll score = 0;
  35. while (n > 0 || m > 0)
  36. {
  37. fo(k,n)
  38. {
  39. if (black[k] > 0)
  40. {
  41. score+= black[k];
  42. used1++;
  43. }
  44. else
  45. {
  46. break;
  47. }
  48. }
  49. fo(k,m)
  50. {
  51. if (white[k] > 0)
  52. {
  53. if (used2 < used1)
  54. {
  55. score+= white[k];
  56. used2++;
  57. }
  58. else
  59. {
  60. if (used1+1 < n && black[used1]+white[k] > 0)
  61. {
  62. score += black[used1]+white[k];
  63. used1++;
  64. used2++;
  65. }
  66. else
  67. {
  68. break;
  69. }
  70. }
  71. }
  72. }
  73. break;
  74. }
  75. cout << score;
  76. }
Success #stdin #stdout 0.01s 5288KB
stdin
4 4
-1 -1 -1 -1
1 1 1 2
stdout
1