CodeForces717C 【数学】

题意:
给你n个数既表示a类的值也表示b类的值,然后计算a和b类两两搭配相乘相加,使得答案最小;
思路:
显而易见的方案是最小乘最大,次小乘次大,然后依次下去。。
可以那个特例证明这个是对的

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;

const LL mod=1e4+7;
const int N=1e5+10;
LL a[N];

int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
        scanf("%I64d",&a[i]);
    sort(a,a+n);
    LL ans=0;
    for(int i=0;i<n;i++)
    {
        ans=(ans+a[i]*a[n-i-1]%mod)%mod;
    }
    printf("%I64d",ans);
    return 0;
posted @ 2016-09-26 22:03  see_you_later  阅读(172)  评论(0编辑  收藏  举报