Cod sursa(job #253953)

Utilizator MihaiBunBunget Mihai MihaiBun Data 6 februarie 2009 13:51:10
Problema Caramizi Scor 0
Compilator fpc Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 1 Marime 1.61 kb
program cara;
type sir=array[1..100] 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);
  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.