fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int max_subarray_sum(vector<int> &nums){
  5. int cur_sum = nums[0];
  6. int max_sum = nums[0];
  7. int len = nums.size();
  8.  
  9. for(int i = 1; i < len; i++){
  10. cur_sum = max(nums[i], cur_sum + nums[i]);
  11. max_sum = max(max_sum, cur_sum);
  12. }
  13.  
  14. return max_sum;
  15. }
  16.  
  17. int main(){
  18. vector<int> in_nums;
  19. string str_nums;
  20. int temp_num;
  21.  
  22. cout << "Enter array of int separated with a comma and a space. e.g. '1, 2, 3, 4'\n";
  23. cout << "> ";
  24. getline(cin, str_nums);
  25. stringstream ss(str_nums);
  26.  
  27. while(ss >> temp_num){
  28. in_nums.push_back(temp_num);
  29. char peeked = ss.peek();
  30. if(peeked == ',' || peeked == ' '){
  31. ss.ignore();
  32. }
  33. }
  34.  
  35. cout << "Max subarray sum: " << max_subarray_sum(in_nums);
  36.  
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 0.01s 5280KB
stdin
-2, 1, -3, 4, -1, 2, 1, -5, 4
stdout
Enter array of int separated with a comma and a space. e.g. '1, 2, 3, 4'
> Max subarray sum: 6