Untitled
unknown
c_cpp
a year ago
1.2 kB
5
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