ACM: uva 11389 -&…
2016-05-19 23:28
323 查看
The Bus Driver Problem In a city there are n bus drivers. Also there are n morning bus routes & n afternoon bus routes with various lengths. Each driver is assigned one morning route & one evening route. For any driver, if his total route length for a day exceeds d, he has to be paid overtime for every hour after the first d hours at a flat r taka / hour. Your task is to assign one morning route & one evening route to each bus driver so that the total overtime amount that the authority has to pay is minimized. |
Input |
The first line of each test case has three integers n, d and r, as described above. In the second line, there are n space separated integers which are the lengths of the morning routes given in meters. Similarly the third line has n space separated integers denoting the evening route lengths. The lengths are positive integers less than or equal to 10000. The end of input is denoted by a case with three 0 s. |
Output |
For each test case, print the minimum possible overtime amount that the authority must pay. |
Constraints |
- 1 ≤ n ≤ 100 - 1 ≤ d ≤ 10000 - 1 ≤ r ≤ 5 |
sample input
2 20 5
10 15
10 15
2 20 5
10 10
10 10
0 0 0
sample outputs
50
0
题意: 给每位司机分配一个白天和晚上的行车路线, 每个路线时间给出, 并且如果司机工作时间为d,
超过时间d就算是加班工作, 每一小时就按照r工资计算, 现在要你安排使得最小的加班费用.
解题思路:
1. 问题很简单, 大小配即可.
代码:
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
#define MAX 105
int n, d, r;
int a[MAX], b[MAX];
bool cmp(int a, int b)
{
return a > b;
}
inline int max(int a, int b)
{
return a > b ? a : b;
}
int main()
{
// freopen("input.txt", "r", stdin);
int i;
while(scanf("%d %d %d", &n,
&d, &r) != EOF)
{
if(n == 0
&& d == 0
&& r == 0) break;
for(i = 0; i <
n; ++i)
scanf("%d",
&a[i]);
for(i = 0; i <
n; ++i)
scanf("%d",
&b[i]);
sort(a, a+n);
sort(b, b+n, cmp);
int ans = 0;
for(i = 0; i <
n; ++i)
ans += max(0,
(a[i]+b[i]-d));
printf("%d\n", ans*r);
}
return 0;
}
相关文章推荐
- ACM: LA 3266 -&nb…
- ACM: uva 1467 - Installations
- ACM: uva 1450 - Airport
- ACM: uva 1335 - Beijing Guards
- ACM: uva 1276 - Network
- Python - pyqt 和 opencv
- Python - 网络基础
- Python - 正则表达式指南
- Python - 基础知识3
- Python - 基础知识1
- Python - 基础知识2
- cug1702&&CCNU校赛J题 分块
- Jersey 2.22.2 官方文档第18章学习笔记
- [蓝桥杯]常用算法-递归法
- 兴趣学习: 人脸识别系统实现 …
- ACM: 数学题 uva_11137
- 兴趣学习: 余弦定理的应用&nb…
- ACM: 二分题 uva 11627
- ACM: uva 11134
- ACM: LA 4254 记住…