Cod sursa(job #1110649)
| Utilizator | Data | 18 februarie 2014 11:58:22 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n,G,W,EG[50001],CG[50001],t[50001];
int main()
{
ifstream f("energii.in");
ofstream g("energii.out");
f>>G;
f>>W;
int i,s=0,j,min;
for (i=1;i<=G;i++)
{
f>>EG[i]>>CG[i];
s=s+EG[i];
}
if (s<W)
g<<-1;
else
{
for (i=1;i<=G;i++)
{
for (j=s;j>=EG[i];j--)
{
if(t[j]<CG[i]+t[j-EG[i]])
t[j]=CG[i]+t[j-EG[i]];
}
}
}
min=t[W];
for (i=W;i<=s;i++)
{
if (min>t[i])
min=t[i];
}
g<<min;
}
