UVA - 11389 The Bus Driver Problem

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

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

#include 
#include 
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;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部