码迷,mamicode.com
首页 > 其他好文 > 详细

UVA - 11389 The Bus Driver Problem

时间:2015-07-16 16:50:28      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:

题目大意:有 n 个司机,n 条下午路线和n条晚上路线,先在要给每个司机安排一条下午路线和一条晚上路线,如果司机的工作时间超过 d,则要按照每小时 r 元增加加班费,问最少需支付多少加班费。

解题思路:贪心,下午最大的搭配晚上最小的,一次类推。

#include <cstdio>
#include <algorithm>
using namespace std;

int main() {
    int n, d, r;
    while (scanf("%d%d%d", &n, &d, &r) && n + d + r) {
        int M[110], E[110];
        for (int i = 0; i < n; i++)
            scanf("%d", &M[i]);
        for (int i = 0; i < n; i++)
            scanf("%d", &E[i]);
        sort(M, M + n);
        sort(E, E + n);

        int ans = 0;
        for (int i = 0; i < n; i++)
            if (M[i] + E[n-i-1] > d)
                ans += (M[i] + E[n-i-1] - d) * r;

        printf("%d\n", ans);
    }
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

UVA - 11389 The Bus Driver Problem

标签:

原文地址:http://blog.csdn.net/kl28978113/article/details/46911491

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!