Cod sursa(job #161375)

Utilizator alin_maidanMaidan Alin alin_maidan Data 17 martie 2008 22:34:46
Problema Economie Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.23 kb
program economie;
type sir=array [0..50000] of byte;
var
a:sir;
f:text;
n,x,j,i,prim,min:word;
begin
assign(f,'economie.in'); reset(f);
read(f,n);
min:=0;  {numara cate numere pun in "baza"}
fillchar(a,sizeof(a),0);    {retin 0 peste tot}
for i:=1 to n do
              begin
              read(f,x);
              a[x]:=1;  {si pun 1 unde am numere}
              end;
close(f);
i:=1;
while a[i]=0 do inc(i);  {caut primul numar}
prim:=i;                  {si-l retin}
while i<=50000 do
        begin
         if (a[i]=1) then  {numarul care-l gasesc il pun in baza}
                begin
                    inc(min);  {il numar}
                    j:=i;
                    while j<= 50000 - i do
                      begin
                        if a[j] > 0 then a[i+j]:=2; {si "scot" multiplii
                        de fapt nu sunt doar multiplii ci toate posibilitatile
                        de a construi sume cu ceva existent a[j]>0 + nodul din baza}
                        inc(j);
                      end;
               end;
               i:=i+1;
               end;
assign(f,'economie.out');rewrite(f);
writeln(f,min);
for i:=1 to 50000 do
  if a[i] = 1 then writeln(f,i);
close(f);
end.