Pagini recente » Cod sursa (job #1031382) | Cod sursa (job #169238) | Cod sursa (job #1488485) | Cod sursa (job #1423705) | Cod sursa (job #253969)
Cod sursa(job #253969)
program cara;
type sir=array[0..10000] of longint;
var f,g:text;
k,i,j,n,m,x,t:longint;
tu,a,b:sir;
procedure poz(li,ls:longint;var k:longint;var a:sir);
var i,j,c,i1,j1:longint;
begin
i1:=0;
j1:=-1;
i:=li;
j:=ls;
while i<j do
begin
if a[i]>a[j] then begin
c:=a[j];
a[j]:=a[i];
a[i]:=c;
c:=i1;
i1:=-j1;
j1:=c;
end;
i:=i+i1;
j:=j+j1;
end;
k:=i;
end;
procedure quick(li,ls:longint);
begin
if li<ls then begin
poz(li,ls,k,a);
quick(li,k-1);
quick(k+1,ls);
end;
end;
begin
assign(f,'caramizi.in');
reset(f);
assign(g,'caramizi.out');
rewrite(g);
readln(f,n,m);
b[0]:=0;
for i:=1 to n do begin
read(f,a[i]);
b[i]:=b[i-1]+a[i]
end;
quick(1,n);
tu[n]:=a[1];
for i:=2 to n do
if b[i]>=a[i+1] then tu[n-i+1]:=a[i+1]
else tu[n-i+1]:=b[i];
for j:=1 to m do
begin
read(f,t);
if t<=a[1] then begin
x:=t*n;
writeln(g,x)
end
else begin
i:=n;
repeat
i:=i-1;
until t>=tu[i];
x:=tu[i]*i;
writeln(g,x);
end;
end;
close(f);
close(g);
end.