fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int N, M, n, m;
  6. long long Atotal = 0, Btotal = 0, B[100001];
  7. cin >> N >> M;
  8. for(int i = 0; i < N; i++) {
  9. int tmp;
  10. cin >> tmp;
  11. Atotal += tmp;
  12. }
  13. for(int i = 0; i < M; i++) {
  14. cin >> B[i];
  15. Btotal += B[i];
  16. }
  17. sort(B, B+M);
  18. n = N;
  19. m = M;
  20. int i, move = 0;
  21. for(i = m-1; i > 0 && Atotal*m <= Btotal*n; i--) {
  22. move += B[i];
  23. Atotal += B[i];
  24. n++;
  25. Btotal -= B[i];
  26. m--;
  27. }
  28. // cout << i << " " << move << " " << Atotal << " " << N << " " << Btotal << " " << M << endl;
  29. if(Atotal*m <= Btotal*n)
  30. cout << -1 << endl;
  31. else if(i < M-1) {
  32. while(i > 0 && B[i] == B[i+1]) {
  33. move += B[i];
  34. Atotal += B[i];
  35. n++;
  36. Btotal -= B[i];
  37. m--;
  38. i--;
  39. }
  40. if(i == 0 && B[i] == B[i+1])
  41. cout << -1 << endl;
  42. else
  43. cout << move << endl;
  44. }
  45. else
  46. cout << move << endl;
  47. // cek kembar
  48. // cout << move << endl;
  49. return 0;
  50. }
Success #stdin #stdout 0s 5264KB
stdin
1 4
2
1 5 5 5
stdout
15