Code

2018年1月29日 星期一

UVA 11389 The Bus Driver Problem

題目的概念很簡單 讓司機盡可能不要超時即可
所以讓白天的工作由小排到大 晚上由大排到小
相加即可讓司機的工作盡量不要超時
這邊給一個小提醒就是 reverse是翻轉 不是降冪排序QAQ
要先sort才reverse才是降冪
花了我一大票時間找這個bug.....也是耍了腦殘

#include <iostream>
#include <algorithm>
using namespace std;
int main(){
	unsigned int n, d ,r;

	while(cin >> n >> d >> r && (n || d || r)){

		int Day[n], Night[n];	
		for(int i=0;i<n;i++) cin >> Day[i];
		for(int i=0;i<n;i++) cin >> Night[i]; 	
		sort(Day,Day+n);
		sort(Night,Night+n);
		reverse(Night,Night+n);
		int Add[n];
		int total = 0;
		for(int i=0;i<n;i++){
			Add[i] = Day[i] + Night[i] - d;
			if(Add[i] > 0 ){
				total += Add[i] * r;
			}
		}
		cout << total <<endl;
	}
	return 0;
}

沒有留言:

張貼留言