Pagini recente » Cod sursa (job #286269) | Cod sursa (job #626150) | Cod sursa (job #2446250) | Cod sursa (job #3229888) | Cod sursa (job #161375)
Cod sursa(job #161375)
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.