TJU : 3508 (Minimum Scalar Product)



// http://acm.tju.edu.cn/toj/showp3508.html
// Tag : sort, greedy 

// @BEGIN_OF_SOURCE_CODE

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
#include <cctype>
#include <stack>
#include <queue>
#include <list>
#include <vector>
#include <map>
#include <sstream>
#include <cmath>
#include <bitset>
#include <utility>
#include <set>
#include <numeric>
#define INT_MAX 2147483647
#define INT_MIN -2147483647
#define pi acos(-1.0)
#define N 1000000
#define LL long long
using namespace std;

LL v1 [N];
LL v2 [N];

bool cmp (LL a, LL b)
{
    return a > b;
}

int main ()
{
    int testCase;
    scanf ("%d", &testCase);
    int cases = 0;

    while ( testCase-- ) {
        int n;
        scanf ("%d", &n);

        for ( int i = 0; i < n; i++ )
            cin >> v1 [i];

        for ( int i = 0; i < n; i++ )
            cin >> v2 [i];

        sort (v1, v1 + n);
        sort (v2, v2 + n, cmp);

        LL res = 0;

        for ( int i = 0; i < n; i++ )
            res += (v1 [i] * v2 [i]);

        printf ("Case #%d: ", ++cases);
        cout << res << endl;
    }

	return 0;
}

// @END_OF_SOURCE_CODE
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s