fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int a,b,c;
  6. cin >> a;
  7. while (a--)
  8. {
  9. cin >> b;
  10. long long sum = 0;
  11. vector<int> nums(b);
  12. for (int i = 0; i < b; i++)
  13. {
  14. cin >> nums[i];
  15. }
  16. int sign;
  17. if (nums[0] > 0)
  18. {
  19. sign = 1;
  20. }
  21. else
  22. {
  23. sign = -1;
  24. }
  25. vector<int> numbers;
  26. for (int i = 0; i < b; i++)
  27. {
  28. int cursign;
  29. if (nums[i] > 0)
  30. {
  31. cursign = 1;
  32. }
  33. else
  34. {
  35. cursign = -1;
  36. }
  37. if (sign == cursign)
  38. {
  39. numbers.push_back(nums[i]);
  40. }
  41. else
  42. {
  43. int num = -INT_MAX;
  44. for (int item : numbers)
  45. {
  46. num = max(num,item);
  47. }
  48. sum+= num;
  49. numbers.clear();
  50. sign = cursign;
  51. numbers.push_back(nums[i]);
  52. }
  53. }
  54. int num = -INT_MAX;
  55. for (int item : numbers)
  56. {
  57. num = max(num,item);
  58. }
  59. sum+= num;
  60. cout << sum << '\n';
  61. }
  62. }
Success #stdin #stdout 0.01s 5292KB
stdin
4
5
1 2 3 -1 -2
4
-1 -2 -1 -3
10
-2 8 3 8 -4 -15 5 -2 -3 1
6
1 -1000000000 1 -1000000000 1 -1000000000
stdout
2
-1
6
-2999999997