SRM468 RoadOrFlightEasy

はじめて臨んだTopCoder.以下のような強引なやり方は思いついたもののC++での書き方がわからず時間内にsubmitできず.行っているのは,差分のvectorをつくって,差分を降順ソート.roadTimeの合計-(差分の先頭からK個分の和).ただし,差分の値が0以下ならroad経由のほうが同等かそれ以上早いため,そこで打ち切り.

#include <map>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

class RoadOrFlightEasy {
public:
  int minTime(int N, vector <int> roadTime, vector <int> flightTime, int K) {
    int ret = 0;
  vector<int> diff;
  
  for(int i = 0; i < N; i++){
    int r = roadTime[i];
    int f = flightTime[i];
	diff.push_back( r - f );
	ret += r;
  }
  sort(diff.begin(), diff.end(), greater<int>());

   for(int i = 0; i < K; i++){
	if( diff[i] <= 0 ) break;
	ret -= diff[i];
   }
  return ret;
  }
};