fork(1) download
  1.  
  2. #include <iostream>
  3. #include <queue>
  4. #include <cmath>
  5. #include <vector>
  6. #include <string>
  7. #include <algorithm>
  8. #include <cstdio>
  9. #include <set>
  10. using namespace std;
  11.  
  12. long long int calculate (vector <long long int> a, long long int index, long long int n, long long int sum, long long int weight)
  13. {
  14.  
  15. if (index >= n) {
  16. return sum;
  17. }
  18.  
  19. if (a[index] >= 0) {
  20. sum = calculate (a, index+1, n, sum + (a[index] * weight), weight+1);
  21. } else {
  22. sum = max (calculate (a, index+1, n, sum + a[index]*weight, weight+1), calculate (a, index+1, n, sum + a[index]*2, 3));
  23. }
  24.  
  25. return sum;
  26.  
  27. }
  28. int main()
  29. {
  30. long long int t,n,i,sum;
  31. scanf ("%lld", &t);
  32. while (t != 0) {
  33. sum = 0;
  34. scanf ("%lld", &n);
  35. vector <long long int> a(n);
  36. for (i = 0; i < n; i++) {
  37. cin >> a[i];
  38.  
  39. }
  40. cout << calculate (a, 0, n, 0, 1) << endl;
  41. t--;
  42. }
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 3480KB
stdin
1 
4 
1 
2 
3 
-4
stdout
6