Pagini recente » Cod sursa (job #724297) | Cod sursa (job #1920290) | Cod sursa (job #1311971) | Cod sursa (job #185398) | Cod sursa (job #1392909)
#include <fstream>
#define INF 1000000000
using namespace std;
ifstream fin("lapte.in");
ofstream fout("lapte.out");
int n,l,i,j,k,t;
int cost[101][101],d[101][101],a[101],b[101];
void boss(int x, int y)
{
if(x!=0) {
boss(x-1,y-cost[x][y]);
fout<<cost[x][y]<<" "<<(t-cost[x][y]*a[x])/b[x]<<"\n";
}
}
int main(void){
fin>>n>>l;
for(i=1;i<=n;i++)
fin>>a[i]>>b[i];
t=0;
while(d[n][l]<l)
{++t;
for(i=0;i<=n;i++)
for(j=0;j<=l;j++)
d[i][j]=-INF;
d[0][0]=0;
for(i=1;i<=n;i++)
for(j=0;j<=l;j++)
for(k=0;k*a[i]<=t;k++)
if(d[i][j]<d[i-1][j-k]+(t-k*a[i])/b[i])
{
cost[i][j]=k;
d[i][j]=d[i-1][j-k]+(t-k*a[i])/b[i];
}
}
fout<<t<<"\n";
boss(n,l);
return 0;
}