Pagini recente » Cod sursa (job #2173854) | Cod sursa (job #959786) | Cod sursa (job #47519) | Cod sursa (job #1008691) | Cod sursa (job #49475)
Cod sursa(job #49475)
var f:text;
a,a2:array[0..100,0..100] of byte;
la,lb,ua,ub:array[1..100] of byte;
ba,bb:array[0..11000] of byte;
n,m,i,k1,k2,mij,xx,yy:byte;
r:integer;
function ok(t:byte):boolean;
var i,j,l,h,x,y:byte;
k,k2:integer;
begin
k:=0;
k2:=0;
fillchar(a2,sizeof(a2),0);
for i:=1 to n do
begin
k:=k2;
for j:=0 to (t div la[i]) do
begin
h:=(t-j*la[i]) div lb[i];
for l:=0 to k do
begin
x:=ba[l]+j;
y:=bb[l]+h;
if (x>m) then x:=m;
if (y>m) then y:=m;
if a2[x,y]=0 then
begin
a[x,y]:=l;
a2[x,y]:=i;
inc(k2);
ba[k2]:=x;
bb[k2]:=y;
end;
end;
end;
end;
if a2[m,m]<>0 then ok:=true
else ok:=false;
end;
begin
assign(f,'lapte.in');
reset(f);
read(f,n,m);
for i:=1 to n do read(f,la[i],lb[i]);
close(f);
k1:=1;
k2:=100;
while k2-k1>1 do
begin
mij:=(k2+k1) shr 1;
if ok(mij) then k2:=mij
else k1:=mij;
end;
ok(k1+1);
r:=1;
xx:=m;yy:=m;
while r<>0 do
begin
r:=a[xx,yy];
ua[a2[xx,yy]]:=xx-ba[r];
ub[a2[xx,yy]]:=yy-bb[r];
xx:=ba[r];
yy:=bb[r];
end;
assign(f,'lapte.out');
rewrite(f);
writeln(f,k1+1);
for i:=1 to n do
writeln(f,ua[i],' ',ub[i]);
close(f);
end.