Loading

洛谷 P2945 [USACO09MAR]沙堡Sand Castle 题解

题目传送门

大概思路就是把这两个数组排序。在扫描一次,判断大小,累加ans。

#include<bits/stdc++.h>
using namespace std;
int x,y,z;
int n[100010],m[100010];
long long s;
int main(){
    cin>>z>>x>>y;
    for(int i=1;i<=z;i++)  cin>>n[i]>>m[i];
    sort(n+1,n+1+z);
    sort(m+1,m+1+z);
    for(int i=1;i<=z;i++){
        if(n[i]<m[i]) s+=(m[i]-n[i])*x;
        else s+=(n[i]-m[i])*y;
    }
    cout<<s;
    return 0;
}

 

posted @ 2018-05-04 22:20  yzx_1798106406  阅读(204)  评论(0编辑  收藏  举报