Var v:array [0..100000] of integer; a:array [0..100,0..100000] of integer; m,p,k,w:integer; procedure step(z,ma:integer);beginif z>0 then if a[z,ma]<>a[z-1,ma] then if a[z-1,ma]<a[z-1,ma-v[z]]+v[z] then begin step(z-1,ma-v[z]); write(v[z],' '); end else step(z-1,ma) else step(z-1,ma); end;
beginread(k);for p:=1 to k do begin read(v[p]); end;read(w);for p:=1 to k do begin for m:=1 to w do begin if m-v[p]>=0 then a[p,m]:=(max(a[p-1,m-v[p]]+v[p],a[p-1,m])) else a[p,m]:=a[p-1,m]; end; end;if a[k,w]=w then step(k,w) else writeln('No solution');end.
procedure step(z,ma:integer);beginif z>0 then if a[z,ma]<>a[z-1,ma] then if a[z-1,ma]<a[z-1,ma-v[z]]+v[z] then begin step(z-1,ma-v[z]); write(v[z],' '); end else step(z-1,ma) else step(z-1,ma); end;
beginread(k);for p:=1 to k do begin read(v[p]); end;read(w);for p:=1 to k do begin for m:=1 to w do begin if m-v[p]>=0 then a[p,m]:=(max(a[p-1,m-v[p]]+v[p],a[p-1,m])) else a[p,m]:=a[p-1,m]; end; end;if a[k,w]=w then step(k,w) else writeln('No solution');end.
3 кбайта= 3*1024*8=24576 бит
1 мбайт = 1*1024*8=8196 байт
4096 бит =4096\8\1024= 0.5 кбайта
2.5 мбайт=2.5*1024=2560 кбайт
Задача 2.k-120 символов
N(мощность алфавита) = 512=> i=9 бит
I=k*i
I=120*9=1080 бит
Задача 3.I=2 кб
k=4096 символов
N=2^i I=k*i i= 2*1024*8/4096=4
2^4=16 - ответ
Задача 4.Племя мульти:
N=64 => i=6 бит
Значит 150*6=900 бит
Племя пульти:
N=512 =>i=9 бит
Значит 50*9=450 бит
Задача 5.I=8 кб
N=16 => i=4
k-? k=I/i k=8*1024*8/4=16 384 - всего символов
16 384/512=32 страницы