In this HackerEarth Pro and Con List problem solution, There is a long list of n girls in front of Barney, and he is to calculate the optimal "happiness" he can find by selecting exactly 2 girls. (Why 2? No one knows!)

Ted, as a fan of pros and cons, suggests to make a list, a method for estimating the maximum happiness that Barney can achieve.

Each girl is characterized by two parameters:

- favour: if this girl is chosen, his happiness increases by this amount.
- anger: if this girl is not chosen, his happiness decreases by this amount.

Find the maximum "happiness" that Barney can obtain. Note that the answer is allowed to be negative.


HackerEarth Pro and Con List problem solution


HackerEarth Pro and Con List problem solution.

#include <bits/stdc++.h>

using namespace std;

int main ()
{
int tc;

vector < int > favor;
vector < int > anger;
vector < long long int > ans;

scanf("%d",&tc);

assert(1<=tc);
assert(tc<=10);

while (tc--)
{
int n;

favor.clear();
anger.clear();
ans.clear();

scanf("%d",&n);
assert(2<=n);
assert(n<=100000);

favor.resize(n);
anger.resize(n);
ans.resize(n);

long long int hatao = 0;

for (int i=0; i<n; i++)
{
scanf("%d %d",&favor[i], &anger[i]);

ans[i] = favor[i] + anger[i];
hatao = hatao + anger[i];

assert(0<=favor[i]);
assert(favor[i]<=1000000000);
assert(0<=anger[i]);
assert(anger[i]<=1000000000);
}

sort(ans.rbegin(),ans.rend());

cout << ans[0] + ans[1] - hatao << endl;
}
return 0;
}