fork(4) download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. int mostCommonSum(const vector<int>& a) {
  7. int sum = 0;
  8. for(auto num: a) {
  9. sum += num;
  10. }
  11. vector<int> dp(sum + 1);
  12. dp[0] = 1;
  13. sum = 0;
  14. for (int i = 0; i < (int)a.size(); i++) {
  15. sum += a[i];
  16. for(int j = sum; j >= 0; j--) {
  17. if (j - a[i] >= 0) {
  18. dp[j] += dp[j - a[i]];
  19. }
  20. }
  21. }
  22. int maxFrequency = -1;
  23. int mostFrequentSum = -1;
  24. for (int i = 0; i <= sum; i++) {
  25. if (dp[i] >= maxFrequency) {
  26. maxFrequency = dp[i];
  27. mostFrequentSum = i;
  28. }
  29. }
  30. return mostFrequentSum;
  31. }
  32.  
  33. int main()
  34. {
  35. vector<int> a = {2, 4, 6, 8};
  36. cout << mostCommonSum(a);
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
14