Cod sursa(job #2149626)
Utilizator | Piscu Stefan Constantin Stefan_Piscu | Data | 2 martie 2018 20:04:06 |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream gout("energii.out");
int i, j, g[1002], a[15005], v[1002], G, n, vmin=100001, S;
int main()
{
f>>n>>G;
for(i=1;i<=n;++i) f>>g[i]>>v[i], S+=g[i];
if(S<G) gout<<-1<<"\n";
else
{
a[0]=1;
for(i=1;i<=n;++i)
for(j=G;j>=0;--j)
if(a[j])
{
if(!a[j+g[i]]) a[j+g[i]]=a[j]+v[i];
else if(a[j]+v[i]<a[j+g[i]]) a[j+g[i]]=a[j]+v[i];
if(j+g[i]>=G) vmin=min(vmin, a[j+g[i]]);
}
gout<<vmin-1<<"\n";
}
return 0;
}