Cod sursa(job #17989)

Utilizator andreitheo87Teodorescu Andrei-Marius andreitheo87 Data 17 februarie 2007 18:19:50
Problema Semne Scor 65
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.96 kb
var fi,fo:text;
    poz,i,n,s,sum:longint;
    v:array[1..50000]of longint;
    plus:array[1..50000]of boolean;
    inv:boolean;
begin
 randomize;
 assign(fi,'semne.in'); reset(fi);
 assign(fo,'semne.out'); rewrite(fo);
 readln(fi,n,s);
 if s<0 then
  begin s:=-s; inv:=true; end
 else inv:=false;
 for i:=1 to n do read(fi,v[i]);
 sum:=0;
 for i:=1 to n do inc(sum,v[i]);
 {xx:=(sum+s)div 2;}
 fillchar(plus,sizeof(plus),true);
 while sum<>s do
  begin
        poz:=random(n)+1;
        if plus[poz]then
         if sum>s then
          begin
                plus[poz]:=false;
                dec(sum,2*v[poz]);
          end
         else begin end
        else if sum<s then
              begin
                    plus[poz]:=true;
                    inc(sum,2*v[poz]);
              end;
  end;
 for i:=1 to n do
  if(plus[i]and not inv)or(not plus[i]and inv)then
   write(fo,'+')
  else write(fo,'-');
 writeln(fo);
 close(fo);
end.