Untitled
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