fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void print(vector<int> &arr){
  5. int n = arr.size();
  6. for(int i = 0; i < n; i++){
  7. cout << arr[i] << " ";
  8. }
  9. }
  10. int main() {
  11. int n; cin >> n;
  12. vector<int> arr(n);
  13. for(int i = 0; i < n; i++)
  14. cin >> arr[i];
  15.  
  16. vector<int> pref(n+1);
  17. pref[0] = 0;
  18. for(int i = 1; i <= n; i++){
  19. pref[i] = pref[i-1]+arr[i-1];
  20. }
  21. unordered_map<int,int> mp;
  22.  
  23. int res = INT_MIN;
  24. int curr_sum = 0;
  25. for(int i = 0; i < n; i++){
  26. curr_sum += arr[i];
  27. if(mp.find(arr[i]) != mp.end()){
  28. int sum = curr_sum - mp[arr[i]];
  29. res = max(sum, res);
  30. mp[arr[i]] = min(mp[arr[i]], pref[i]);
  31. }
  32. else
  33. mp[arr[i]] = pref[i];
  34. }
  35. cout << res;
  36. return 0;
  37. }
Success #stdin #stdout 0.01s 5288KB
stdin
6
8 -100 8 9 10 8
stdout
35