Cod sursa(job #2271698)

Utilizator tiberiu392Tiberiu Ungurianu tiberiu392 Data 29 octombrie 2018 09:07:20
Problema Lapte Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>

using namespace std;
ifstream f("lapte.in");
ofstream g("lapte.out");

int n , l , k , t , i, j;
int price[101][101],m[101][101],a[101],b[101];

void ans( int n, int l)
{
    if( n != 0)
    {
        ans(n-1,l-price[n][l]);
        g << price[n][l] << ' ' << (t-price[n][l]*a[n])/b[n] << '\n';
    }
}
int main()
{
    f >> n >> l;
    for ( i = 1 ; i <= n ; i++ )
    {
        f >> 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])
                    {
                        price[i][j]=k;
                        m[i][j]=m[i-1][j-k]+(t-k*a[i])/b[i];
                    }

    }
    g << t << "\n";
    ans(n, l);
    return 0;
}