Cod sursa(job #1547456)
| Utilizator | Data | 9 decembrie 2015 16:44:34 | |
|---|---|---|---|
| Problema | Energii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int v[10001],EG[10001],CG[10001],G,W;
int main()
{
fin>>G>>W;
for(int i=1; i<=G; i++)
fin>>EG[i]>>CG[i];
for(int i=0; i<=10000; i++)
v[i]=INT_MAX;
v[0]=0;
for(int i=1; i<=G; i++)
for(int j=W; j>=0; j--)
if(v[j]!=INT_MAX)
{
if(j+EG[i]>=W)
v[W]=min(v[W],v[j]+CG[i]);
else
v[j+EG[i]]=min(v[j+EG[i]],v[j]+CG[i]);
}
if(v[W]!=INT_MAX)
fout<<v[W];
else
fout<<-1;
return 0;
}
