题解

1 条题解

  • 1
    @ 2022-08-18 20:20:10
    #include<bits/stdc++.h>
    using namespace std;
    int n;
    long long ans=0;
    struct node
    {
        int x,y,sum=0;
    } a[600005];
    bool cmp(node s,node t)//按照每个奶牛手里的数字总和排序
    {
        return s.sum>t.sum;
    }
    int main()
    {
        cin>>n;
        for(int i=1; i<=n; i++)
        {
            cin>>a[i].x>>a[i].y;//读入
            a[i].sum=a[i].x+a[i].y;//奶牛手里的数字总和
        }
        sort(a+1,a+n+1,cmp);//排序
        for(int i=1; i<=n/2; i++)//每次减去最大的
            ans-=max(a[i].x,a[i].y);
        for(int i=n/2+1; i<=n; i++)//加上最小的
            ans+=min(a[i].x,a[i].y);
        cout<<ans<<endl;
        return 0;
    }
    
  • 1

信息

ID
1540
难度
7
分类
数学排序 点击显示
标签
递交数
3
已通过
1
通过率
33%
上传者