#include <cstdio> #include <vector> #include <algorithm> typedef long long int zap_time_t; zap_time_t min_waiting_time(std::vector<zap_time_t> &client_times, zap_time_t oven_baking_time) { int n = client_times.size(); std::vector<zap_time_t> waiting_times(n); waiting_times[0] = std::max(static_cast<zap_time_t>(0), oven_baking_time - client_times[0]); for (int i = 1; i < n; ++i) { zap_time_t delta = client_times[i] - client_times[i - 1]; if (delta < oven_baking_time) { waiting_times[i] = oven_baking_time - delta; } else { waiting_times[i] = 0; } } zap_time_t sum = 0; for (int i = 0; i < n; ++i) { sum += waiting_times[i]; } return sum; } int main() { int n, m; zap_time_t t, min_time; std::vector<zap_time_t> client_times; scanf("%d", &n); scanf("%d", &m); client_times.resize(n); for (int i = 0; i < n; ++i) { scanf("%lld", &t); client_times[i] = t; } for (int i = 0; i < m; ++i) { scanf("%lld", &t); min_time = min_waiting_time(client_times, t); printf("%lld\n", min_time); } }
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 47 48 49 50 51 52 | #include <cstdio> #include <vector> #include <algorithm> typedef long long int zap_time_t; zap_time_t min_waiting_time(std::vector<zap_time_t> &client_times, zap_time_t oven_baking_time) { int n = client_times.size(); std::vector<zap_time_t> waiting_times(n); waiting_times[0] = std::max(static_cast<zap_time_t>(0), oven_baking_time - client_times[0]); for (int i = 1; i < n; ++i) { zap_time_t delta = client_times[i] - client_times[i - 1]; if (delta < oven_baking_time) { waiting_times[i] = oven_baking_time - delta; } else { waiting_times[i] = 0; } } zap_time_t sum = 0; for (int i = 0; i < n; ++i) { sum += waiting_times[i]; } return sum; } int main() { int n, m; zap_time_t t, min_time; std::vector<zap_time_t> client_times; scanf("%d", &n); scanf("%d", &m); client_times.resize(n); for (int i = 0; i < n; ++i) { scanf("%lld", &t); client_times[i] = t; } for (int i = 0; i < m; ++i) { scanf("%lld", &t); min_time = min_waiting_time(client_times, t); printf("%lld\n", min_time); } } |