#include <cstdio>
#include <vector>
using namespace std;
typedef long long unsigned int LL;
typedef vector<long long> vLL;
typedef vector<long long>::iterator vLLi;
int main()
{
LL N,M,n,m;
vLL T,D,S,T_max,K;
scanf("%lld %lld",&N,&M);
for (n = 0; n < N; n++)
{
scanf("%lld",&m);
T.push_back(m);
}
for (m = 0; m < M; m++)
{
scanf("%lld",&n);
D.push_back(n);
S.push_back(0);
T_max.push_back(0);
}
for (n = 0; n < N; n++)
{
for (m = 0; m < M; m++)
{
if (T_max[m] + D[m] <= T[n]) T_max[m] = T[n];
else
{
T_max[m] += D[m];
S[m] += T_max[m] - T[n];
}
// printf("%lld %lld %lld\n",T[n],T_max[m],S[m]);
}
}
for (m = 0; m < M; m++)
{
printf("%lld\n",S[m]);
}
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 | #include <cstdio> #include <vector> using namespace std; typedef long long unsigned int LL; typedef vector<long long> vLL; typedef vector<long long>::iterator vLLi; int main() { LL N,M,n,m; vLL T,D,S,T_max,K; scanf("%lld %lld",&N,&M); for (n = 0; n < N; n++) { scanf("%lld",&m); T.push_back(m); } for (m = 0; m < M; m++) { scanf("%lld",&n); D.push_back(n); S.push_back(0); T_max.push_back(0); } for (n = 0; n < N; n++) { for (m = 0; m < M; m++) { if (T_max[m] + D[m] <= T[n]) T_max[m] = T[n]; else { T_max[m] += D[m]; S[m] += T_max[m] - T[n]; } // printf("%lld %lld %lld\n",T[n],T_max[m],S[m]); } } for (m = 0; m < M; m++) { printf("%lld\n",S[m]); } return 0; } |
English