#include<cstdio>
#include<unordered_map>
#define N 200000
using namespace std;
int main()
{
int n, m;
scanf("%d", &n);
scanf("%d", &m);
long long int klienci[200000];
for(int i = 0; i < n; i++){
scanf("%lld", &klienci[i]);
}
unordered_map<int, long long int> map;
for(int j = 0; j<m; j++)
{
int p;
scanf("%d", &p);
auto found = map.find(p);
if(found != map.end()) {
printf("%lld\n", found->second);
}
else {
long long int s = 0;
long long int last = 0;
for(int i = 0; i < n; i++) {
long long int dif = klienci[i] - last;
last = klienci[i];
if(dif < p)
{
long long int dd = p - dif;
s = s + dd;
last = last + dd;
}
}
map.insert({p, s});
printf("%lld\n", s);
}
}
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 | #include<cstdio> #include<unordered_map> #define N 200000 using namespace std; int main() { int n, m; scanf("%d", &n); scanf("%d", &m); long long int klienci[200000]; for(int i = 0; i < n; i++){ scanf("%lld", &klienci[i]); } unordered_map<int, long long int> map; for(int j = 0; j<m; j++) { int p; scanf("%d", &p); auto found = map.find(p); if(found != map.end()) { printf("%lld\n", found->second); } else { long long int s = 0; long long int last = 0; for(int i = 0; i < n; i++) { long long int dif = klienci[i] - last; last = klienci[i]; if(dif < p) { long long int dd = p - dif; s = s + dd; last = last + dd; } } map.insert({p, s}); printf("%lld\n", s); } } return 0; } |
English