Cod sursa(job #2096075)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 28 decembrie 2017 15:24:33
Problema Lapte Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("lapte.in");
ofstream fout("lapte.out");

int n,l,k,t;
int cost[101][101],m[101][101],a[101],b[101];

void afis(int x,int y)
{
    if(x!=0)
    {
        afis(x-1,y-cost[x][y]);
        fout << cost[x][y] << ' ' << (t-cost[x][y]*a[x])/b[x] << '\n';
    }
}

int main()
{
    fin >> n >> l;
    int i,j;
    for(i=1;i<=n;i++)
    {
        fin >> a[i] >> b[i];
    }
    t=0;
    while(m[n][l]<l)
    {
        t++;
        for(i=0;i<=n;i++)
            for(j=0;j<=l;j++)
                m[i][j]=-1000000000;
        m[0][0]=0;
        for(i=1;i<=n;i++)
            for(j=0;j<=l;j++)
                for(k=0;k*a[i]<=t;k++)
                    if(m[i][j]<m[i-1][j-k]+(t-k*a[i])/b[i])
                    {
                        cost[i][j]=k;
                        m[i][j]=m[i-1][j-k]+(t-k*a[i])/b[i];
                    }
    }
    fout << t << '\n';
    afis(n,l);
    return 0;
}