Untitled

 avatar
unknown
c_cpp
5 months ago
1.2 kB
3
Indexable
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

struct Order {
    int arrival;
    int deliveryTime;
    int index; 
};

bool compare(const Order &a, const Order &b) {
    return a.arrival < b.arrival; 
}

int main() {
    int N, M;
    cin >> N >> M;

    vector<Order> orders(M);
    vector<int> availability(N, 0); 
    vector<int> result(M, -1); 

    
    for (int i = 0; i < M; i++) {
        cin >> orders[i].arrival;
        orders[i].index = i; 
    }
    for (int i = 0; i < M; i++) {
        cin >> orders[i].deliveryTime;
    }

   
    sort(orders.begin(), orders.end(), compare);


    for (const auto &order : orders) {
        int orderArrival = order.arrival;
        int orderDeliveryTime = order.deliveryTime;
        int assignedPartner = -1;

        
        for (int j = 0; j < N; j++) {
            if (availability[j] <= orderArrival) { 
                assignedPartner = j + 1; 
                availability[j] = orderArrival + orderDeliveryTime; 
                break;
            }
        }

        result[order.index] = assignedPartner; 
    }

    for (int i = 0; i < M; i++) {
        cout << result[i] << " ";
    }
    cout << endl;

    return 0;
}
Editor is loading...
Leave a Comment