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
#include <stdio.h>
#include <algorithm>    
#include <vector>       

int n,m;
long long int tr[200002];
int d[200001];
int dd[200001];
long long int czasy[1000001];

void czyt()
{
	int i,a;
	long long int x,y;

	scanf("%d %d",&n,&m);
	x=0;
	
	for(i=0;i<n;++i)
	{
		scanf("%lld",&y);
		tr[i]=y-x; 
		x=y;
	}
	
	std::sort(tr,tr+n);
	
	for(i=0;i<m;++i)
	{
		scanf("%d",&a);
		d[i]=a;
		dd[i]=a;
	}
	std::sort(dd,dd+m);
	
	return;
}


int main()
{
	long long int S;
	int cz,i,j,M,k;
	
	czyt();

//pierwszy piekarnik (najszybszy):
	cz=dd[0];
	j=0; S=0;
	while(tr[j]<=cz) {S+=cz-tr[j]; j++;}
	czasy[cz]=S;
	
//kolejne piekarniki:
	for(i=1;i<m;++i)
	{
		S+=j*(dd[i]-cz);
		cz=dd[i];
		while(tr[j]<=cz) {S+=cz-tr[j]; j++;}
		czasy[cz]=S;
	}
	
	for(i=0;i<m;++i)
		printf("%lld\n",czasy[d[i]]);

	return 0;
}