#include <ctime>
#include <climits>
#include <cstdlib>
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstring>
#include <vector>
#include <map>
#include <stack>
#include <utility>
#include <queue>
#include <list>
#include <iomanip>
#include <set>
#define PI 3.14159265
#define INF LLONG_MAX
using namespace std;
// gupi brutforce do sprawdzania wynikuw
int n,m;
vector<long long> t,d,res,time_of_end;
void read_input()
{
cin >> n >> m;
t.resize(n);
d.resize(m);
for (int i = 0; i < n; ++i)
cin >> t[i];
for (int i = 0; i < m; ++i)
cin >> d[i];
res.resize(m);
time_of_end.resize(n);
}
void print_output()
{
for (int i = 0; i < m; ++i)
std::cout << res[i] << std::endl;
}
void solve()
{
for (int i = 0; i < m; ++i)
{
res[i] = 0;
long long slack = 0;
time_of_end[0] = t[0];
if (t[0] < d[i])
{
res[i] += d[i] - t[0];
slack = d[i] - t[0];
time_of_end[0] = d[i];
}
for (int j = 1; j < n; ++j)
{
time_of_end[j] = max(t[j], time_of_end[j-1]+d[i]);
res[i] += time_of_end[j] - t[j];
}
}
}
int main(int argc, const char *argv[])
{
ios::sync_with_stdio(false);
cin.tie(NULL);
read_input();
solve();
print_output();
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #include <ctime> #include <climits> #include <cstdlib> #include <iostream> #include <string> #include <algorithm> #include <cmath> #include <cstdio> #include <cstring> #include <vector> #include <map> #include <stack> #include <utility> #include <queue> #include <list> #include <iomanip> #include <set> #define PI 3.14159265 #define INF LLONG_MAX using namespace std; // gupi brutforce do sprawdzania wynikuw int n,m; vector<long long> t,d,res,time_of_end; void read_input() { cin >> n >> m; t.resize(n); d.resize(m); for (int i = 0; i < n; ++i) cin >> t[i]; for (int i = 0; i < m; ++i) cin >> d[i]; res.resize(m); time_of_end.resize(n); } void print_output() { for (int i = 0; i < m; ++i) std::cout << res[i] << std::endl; } void solve() { for (int i = 0; i < m; ++i) { res[i] = 0; long long slack = 0; time_of_end[0] = t[0]; if (t[0] < d[i]) { res[i] += d[i] - t[0]; slack = d[i] - t[0]; time_of_end[0] = d[i]; } for (int j = 1; j < n; ++j) { time_of_end[j] = max(t[j], time_of_end[j-1]+d[i]); res[i] += time_of_end[j] - t[j]; } } } int main(int argc, const char *argv[]) { ios::sync_with_stdio(false); cin.tie(NULL); read_input(); solve(); print_output(); return 0; } |
English