Pagini recente » Cod sursa (job #1194825) | Cod sursa (job #2486745) | Cod sursa (job #3159768) | Cod sursa (job #2472349) | Cod sursa (job #198213)
Cod sursa(job #198213)
#include<stdio.h>
long n,l,i,tmin,ta[101],ca[101],sa[101],tb[101],cb[101],sb[101];
void citire();
void back(long T,long A,long B,long I);
void print_sol();
int main()
{ citire();
back(0,l,l,1);
print_sol();
return 0;
}
void back(long T,long A,long B,long I)
{
long a,b,time;
if(!A&&!B)
{ if(T<tmin)
{ tmin=T;
for(i=1;i<I;i++){sa[i]=ca[i];sb[i]=cb[i];}
for(i=I;i<=n;i++){sa[i]=0;sb[i]=0;}
}
return;
}
if(I==n+1)return;
for(a=0;a<=A;a++)
for(b=0;b<=B;b++)
{ time=a*ta[I]+b*tb[I];
if(time>=tmin)break;
time=(time>T)?time:T;
ca[I]=a;cb[I]=b;back(time,A-a,B-b,I+1);
}
}
void citire()
{
freopen("lapte.in","rt",stdin);
scanf("%ld%ld",&n,&l);
for(i=1;i<=n;i++) scanf("%ld%ld",&ta[i],&tb[i]);
tmin=101;
}
void print_sol()
{
freopen("lapte.out","wt",stdout);
printf("%ld\n",tmin);
for(i=1;i<=n;i++)printf("%ld %ld\n",sa[i],sb[i]);
}