Mai intai trebuie sa te autentifici.
Cod sursa(job #1717608)
Utilizator | Data | 15 iunie 2016 12:29:30 | |
---|---|---|---|
Problema | Energii | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.79 kb |
#include <iostream>
#include <fstream>
using namespace std;
int G, W, d[50001], i, j;
struct generator
{int c,e;
};
generator v[50000];
int main()
{ freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
cin>>G>>W;
for(i=1; i<=G; ++i)
cin>>v[i].e>>v[i].c;
for(i=1; i<=G; i++)
{
for(j=W; j>-1; j--)
if(d[j]!=0 || j==0)
{
if(j+v[i].e<=W)
{
if(d[j+v[i].e]==0 || d[j+v[i].e]>d[j]+v[i].c)
d[j+v[i].e]=d[j]+v[i].c;
}
else
{
if(d[W]==0 || d[W]>d[j]+v[i].c)
d[W]=d[j]+v[i].c;
}
}
}
if(d[W]!=0)
cout<<d[W];
else
cout<<-1;
return 0;
}