1127:司机问题)贪心算法

在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<cstdio>
#include<algorithm>

using namespace std;

int main()
{
    int n,d,r;
    while(scanf("%d%d%d",&n,&d,&r)!=EOF)
    {
        int day[n],night[n];
        for(int i=0;i<n;i++) scanf("%d%d",&day[i],&night[i]);
        sort(day,day+n);sort(night,night+n);
        
        int m1=0,m2=0;
        for(int i=0;i<n;i++)//一大一小搭配 
            if(day[i]+night[n-i-1]>d) m1+=(day[i]+night[n-i-1]-d)*r;
        
        for(int i=0;i<n;i++)//一大一小搭配 
            if(day[n-i-1]+night[i]>d) m2+=(day[n-i-1]+night[i]-d)*r;
            
        int m=min(m1,m2);
        printf("%d\n",m);
    }
    return 0;
}
发布了98 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43661234/article/details/104350638