In this **HackerEarth Profits by cars problem solution,** You are a car seller. You have N cars and the profit for each of the cars is given by an array P. The profit of cars are P1, P2, P3, ..., PN. Since you got a huge profit in the last month so you decide to get (N - 1) more sets of such cars. You already have one car. Now, you have N^2 cars. Basically, there are N number of cars of each profit such as N cars for profit P1, N cars of profit P2, and so on up to N cars of profit PN.

You can perform the following operations any number of times:

If the last car is sold for profit P, then you can sell a car for profit Pc > P.

**Note:** You can select a car of any profit in the first operation as there are no cars that are sold earlier.

Find out the maximum profit that you can make.

For example, N = 4 and prices are P1, P2, P3, P4. Since N is 4, therefore you can have four sets of cars and the prices are P1, P2, P3, P4, P1, P2, P3, P4, P1, P2, P3, P4, P1, P2, P3, P4.

## HackerEarth Profits by cars problem solution.

#include<bits/stdc++.h>
using namespace std;
#define FIO ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define mod 1000000007
#define test ll t; cin>>t; while(t--)
typedef long long int ll;
int main() {
FIO;
//test
{
ll n;
cin>>n;
ll x; set<ll>s;
for(int i=0;i<n;i++){
cin>>x;
s.insert(x);
}
ll ans=0;
for(auto it:s){
ans+=it;
}
cout<<ans<<endl;
}
return 0;
}

### Second solution

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ios::sync_with_stdio(0), cin.tie(0);
int t;
cin >> t;
while(t--){
int n;
cin >> n;
int a[n];
for(int i = 0; i < n; i++)
cin >> a[i];
sort(a, a + n);
n = unique(a, a + n) - a;
cout << accumulate(a, a + n, 0ll) << '\n';
}
}

Thursday, January 13, 2022