fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. long long int V[100001];
  4. long long int d,i,j,k,ans=0;
  5. int main()
  6. {
  7. long long int t;
  8. cin>>t;
  9. while(t--)
  10. {
  11. ans=0;
  12. cin>>d;
  13.  
  14. vector<long long int> dino,dinoin,hum,humin;
  15. for(i=0;i<d;i++)
  16. {
  17. cin>>V[i];
  18. if(V[i]<0)
  19. {
  20. V[i]=V[i]*(-1);
  21. dino.push_back(V[i]);
  22. dinoin.push_back(i);
  23. }
  24. else
  25. {
  26. hum.push_back(V[i]);
  27. humin.push_back(i);
  28. }
  29. }
  30. j=0;
  31. k=0;
  32. for(i=0;i<hum.size();i++)
  33. {
  34. s:;
  35. k=max(humin[i],dinoin[j])-min(humin[i],dinoin[j]);
  36.  
  37. if(hum[i]<=dino[j])
  38. {
  39. ans+=(hum[i])*(k);
  40. dino[j]-=hum[i];
  41. }
  42. else
  43. {
  44. ans+=(k)*dino[j];
  45. hum[i]-=dino[j];
  46. j++;
  47. goto s;
  48. }
  49. }
  50. cout<<ans<<endl;
  51. }
  52. return 0;
  53. }
  54.  
Success #stdin #stdout 0s 4016KB
stdin
3
2
5 -5
2
-5 5
3
1 2 -3
stdout
5
5
4