Pagini recente » Cod sursa (job #1638860) | Cod sursa (job #2652544) | Cod sursa (job #2350948) | Cod sursa (job #2832025) | Cod sursa (job #1789353)
#include<cstdio>
using namespace std;
int t,n,l,best[102][102],a[102],b[102],sol[102][102];
void ans(int i,int l)
{
if (i==0)
return;
ans(i-1,l-sol[i][l]);
printf("%d %d\n",sol[i][l],(t-sol[i][l]*a[i])/b[i]);
}
int main()
{
freopen("lapte.in","r",stdin);
freopen("lapte.out","w",stdout);
int i,j,k;
scanf("%d%d",&n,&l);
for(i=1;i<=n;++i)
scanf("%d%d",&a[i],&b[i]);
for(t=1;t<=100;++t)
{
for(i=0;i<=100;++i)
for (j=0;j<=100;++j)
best[i][j]=-1000000000;
best[0][0]=0;
for(i=1;i<=n;++i)
for(k=0;k<=l;++k)
for(j=0;j<=t/a[i] && j<=k;++j)
if (best[i][k]<best[i-1][k-j]+(t-j*a[i])/b[i])
{
sol[i][k]=j;
best[i][k]=best[i-1][k-j]+(t-j*a[i])/b[i];
}
if (best[n][l]>=l)
{
printf("%d\n",t);
ans(n,l);
return 0;
}
}
printf("%d\n",t);
ans(n,l);
return 0;
}