fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int getLargestOutlier(vector<int>& nums) {
  5. map<int,int>mp;
  6. int sum = 0;
  7. for(int i=0;i<nums.size();i++) {
  8. mp[nums[i]]++;
  9. sum+=nums[i];
  10. }
  11. int maxOutlier = INT_MIN;
  12. for(int i=0;i<nums.size();i++) {
  13. int sumWithoutOutlier = sum-nums[i];
  14. if(sumWithoutOutlier%2) continue;
  15. int halfSum = sumWithoutOutlier/2;
  16. mp[nums[i]]--;
  17. if(mp[nums[i]]==0) mp.erase(nums[i]);
  18. if(mp.find(halfSum)!=mp.end()) {
  19. if(maxOutlier<nums[i])
  20. maxOutlier=nums[i];
  21. }
  22. mp[nums[i]]++;
  23. }
  24. return maxOutlier;
  25. }
  26.  
  27. int main() {
  28. // your code goes here
  29. vector<int>nums={1,1,1,1,1,5,5};
  30. cout<<getLargestOutlier(nums);
  31. return 0;
  32. }
Success #stdin #stdout 0.01s 5276KB
stdin
Standard input is empty
stdout
5