Pagini recente » Cod sursa (job #1101143) | Cod sursa (job #1194463) | Cod sursa (job #3165302) | Cod sursa (job #74423) | Cod sursa (job #198211)
Cod sursa(job #198211)
#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]=ca[i];sb[i]=cb[i];}
}
return;
}
if(I==n+1)return;
for(a=A;a>=0;a--)
for(b=B;b>=0;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]);
}