FASHION - Fashion Shows
A fashion show rates participants according to their level of hotness. Two different fashion shows were organized, one for men and the other for women. A date for the third is yet to be decided ;) .
Now the results of both fashion shows are out. The participants of both the fashion shows have decided to date each other, but as usual they have difficuly in choosing their partners. The Maximum Match dating serive (MMDS) comes to their rescue and matches them in such a way that that maximizes the hotness bonds for all couples.
If a man has been rated at hotness level x and a women at hotness level y, the value of their hotness bond is x*y.
Both fashion shows contain N participants each. MMDS has done its job and your job is to find the sum of hotness bonds for all the couples that MMDS has proposed.
The first line of the input contains an integer t, the number of test cases. t test cases follow.
Each test case consists of 3 lines:
- The first line contains a single integer N (1 <= N <= 1000).
- The second line contains N integers separated by single spaces denoting the hotness levels of the men.
- The third line contains N integers separated by single spaces denoting the hotness levels of the women.
All hotness ratings are on a scale of 0 to 10.
For each test case output a single line containing a single integer denoting the sum of the hotness bonds for all pairs that MMDS has proposed.
Input: 2 2 1 1 3 2 3 2 3 2 1 3 2 Output: 5 15
The question is not stated correctly, we need to maximize the sum of hotness and not each hotness bond separately.
"that MMDS has proposed" - this is wrong, we have to pair them first
I got AC after I used bubble sort algorithm.But it made my code look too big. Is it right approach? or there's any other way to solve this problem? It also took 0.06 time and 9.2M memory in C which is quite a lot compared to other languages.
Last edit: 2019-01-30 15:15:28
In C++ just apply std::sort and std::inner_product
Very easy problem. Just sort the two arrays, calculate hotness and then use an accumulator variable to calculate the sum. print it and get AC in 1 GO. lol
wrong explanation, u have to match the hotness of men and women first to maximize total hotness !!
Use two stacks and store numbers in ascending order ( smaller first ). The. Just pop elements and multiply them.
it is said that we have to maximise the hotness ,so we have to sort ,in order to multiply two no. to maximise the result