#include <cstdio>
#include <cstdint>
#include <cinttypes>
#include <vector>
#include <algorithm>
int main(int argc, char const *argv[]) {
uint32_t clients_count;
scanf("%" PRIu32, &clients_count);
uint32_t ovens_count;
scanf("%" PRIu32, &ovens_count);
std::vector<uint64_t> clients_arrivals;
clients_arrivals.reserve(clients_count);
while (clients_count--) {
uint64_t tmp;
scanf("%" PRIu64, &tmp);
clients_arrivals.push_back(tmp);
}
std::vector<uint64_t> baking_durations;
baking_durations.reserve(ovens_count);
while (ovens_count--) {
uint64_t tmp;
scanf("%" PRIu64, &tmp);
baking_durations.push_back(tmp);
}
for (const auto &baking_duration : baking_durations) {
uint64_t wait_acc_time = 0;
uint64_t prev_served_time = 0;
for (const auto &client_arrival : clients_arrivals) {
auto earliest_possible_serve_time = prev_served_time + baking_duration;
if (earliest_possible_serve_time > client_arrival) {
wait_acc_time += earliest_possible_serve_time - client_arrival;
prev_served_time = earliest_possible_serve_time;
} else {
prev_served_time = client_arrival;
}
}
printf("%" PRIu64 "\n", wait_acc_time);
}
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include <cstdio> #include <cstdint> #include <cinttypes> #include <vector> #include <algorithm> int main(int argc, char const *argv[]) { uint32_t clients_count; scanf("%" PRIu32, &clients_count); uint32_t ovens_count; scanf("%" PRIu32, &ovens_count); std::vector<uint64_t> clients_arrivals; clients_arrivals.reserve(clients_count); while (clients_count--) { uint64_t tmp; scanf("%" PRIu64, &tmp); clients_arrivals.push_back(tmp); } std::vector<uint64_t> baking_durations; baking_durations.reserve(ovens_count); while (ovens_count--) { uint64_t tmp; scanf("%" PRIu64, &tmp); baking_durations.push_back(tmp); } for (const auto &baking_duration : baking_durations) { uint64_t wait_acc_time = 0; uint64_t prev_served_time = 0; for (const auto &client_arrival : clients_arrivals) { auto earliest_possible_serve_time = prev_served_time + baking_duration; if (earliest_possible_serve_time > client_arrival) { wait_acc_time += earliest_possible_serve_time - client_arrival; prev_served_time = earliest_possible_serve_time; } else { prev_served_time = client_arrival; } } printf("%" PRIu64 "\n", wait_acc_time); } return 0; } |
English