Minimum Platforms # Greedy

#include <bits/stdc++.h>
using namespace std;

int findPlatform(int arr[], int dep[], int n){
    vector<pair<int,int>> slots;
    for(int i=0;i<n;i++){
        slots[i].first = dep[i];
        slots[i].second = arr[i];
    }

    sort(slots.begin(), slots.end());

    int c = slots[0].first;
    int ans = 1;

    for(int i=0;i<n;i++){
        if(slots[i].second > c) c = slots[i].first;
        else ans++;
    }
    return ans;
}

int main(){
    int n;
    cin >> n;

    int arr[n];
    int dep[n];
    for(int i=0;i<n;i++){
        cin >> arr[i];
    }
    for(int i=0;i<n;i++){
        cin >> dep[i];
    }

    cout << findPlatform(arr, dep, n);

    return 0;
}

Comments

Popular Posts