SRM468 Div2 Easy(250) RoadOrFlightEasy

RoadOrFlightEasy

#include <vector>
#include <numeric>
#include <algorithm>
#include <functional>

using namespace std;

class RoadOrFlightEasy
{
public:
    int minTime( int N, vector <int> roadTime, vector <int> flightTime, int K );
};

int RoadOrFlightEasy::minTime( int N, vector <int> roadTime, vector <int> flightTime, int K )
{
    int time = accumulate( roadTime.begin(), roadTime.end(), 0 );

    vector<int> reduct;
    for ( int i=0; i<N; i++ )
        reduct.push_back( roadTime[i] - flightTime[i] );

    sort( reduct.begin(), reduct.end(), greater<int>() );

    for ( int i=0; i<K; i++ )
        if ( reduct[i] > 0 )
            time -= reduct[i];
    
    return time;
}