Cod sursa(job #253893)

Utilizator DiaconuDiaconu Loredana Diaconu Data 6 februarie 2009 13:24:49
Problema Caramizi Scor 60
Compilator fpc Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 0.85 kb
var        f,g:text;
           n,m,i,cn,max:longint;
           a:int64;
           x:array[1..200000] of int64;
           v:array[0..1000000] of integer;
           sum,r:array[0..1000000] of int64;

begin
assign (f,'caramizi.in');reset(f);
assign (g,'caramizi.out');rewrite (g);
readln (f,n,m);
max:=0;
for i:=1 to n do begin
 read (f,a);
 inc(v[a]);
 if a>max then max:=a;
end;
for i:=1 to m do begin
 read(f,x[i]);
 if x[i]>max then max:=x[i];
end;
if max>1000000 then max:=1000000;
sum[0]:=0;
cn:=n;
for i:=1 to max do begin
 sum[i]:=(i*v[i])+sum[i-1];
 cn:=cn-v[i];
 v[i]:=cn+v[i];
end;
for i:=1 to max do begin
 r[i]:=v[i]*i+(sum[i-1] div i)*i;
 if r[i-1]>r[i] then r[i]:=r[i-1];
end;
for i:=1 to m do begin
 if x[i]<=max then writeln (g,r[x[i]])
           else writeln (g,r[max]);
end;
close(f);close(g);
end.