Cod sursa(job #713857)

Utilizator bacilaBacila Emilian bacila Data 15 martie 2012 01:21:23
Problema Lapte Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <iostream>
#include <fstream>
using namespace std;
int l,n,k,p,a[103],b[103],c[103][103],v[103][103],i,j;
ofstream g("lapte.out");
void afisare(int x, int y)
{ if(x)
{afisare(x-1,y-v[x][y]);
g<<v[x][y]<<" "<<(i-v[x][y]*a[x])/b[x]<<'\n';
       }
     }
int main ()
{
    ifstream f("lapte.in");
 
 f>>n>>l;
 for(i=1;i<=n;i++)
 f>>a[i]>>b[i];
 for(i=1;i<=100;i++)
 {for(p=0;p<=n;p++)
 for(j=0;j<=l;j++)
 c[p][j]=-1000;
 c[0][0]=0;
 for(p=1;p<=n;p++)
 for(j=0;j<=l;j++)
 for(k=0;k<=j&&k<=i/a[p];k++)
 if(c[p][j]<c[p-1][j-k]+(i-k*a[p])/b[p])
 {c[p][j]=c[p-1][j-k]+(i-k*a[p])/b[p];
 v[p][j]=k;
 }
 if(c[n][l]>=l) break;

 }
 g<<i<<'\n';
afisare(n,l);

 f.close(); g.close();
return 0;
}