Cod sursa(job #703476)
| Utilizator | Data | 2 martie 2012 12:34:25 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.46 kb |
#include<fstream>
using namespace std;
int sol[1001];
int main()
{
ifstream f("energii.in");
ofstream g("energii.out");
int n,i,j,maxim=0,G,cost,cantitate;
f>>n;
f>>G;
for(i=1; i<=n; i++)
{
f>>cantitate; f>>cost;
for(j=maxim; j>=0; j--)
if(cantitate+j<=G)
sol[cantitate+j]=max(sol[cantitate+j],cost+sol[j]);
maxim=min(maxim+cantitate, G);
}
maxim=0;
for(i=0; i<=G; i++)
if(maxim<sol[i])
maxim=sol[i];
g<<maxim;
}
