Cod sursa(job #2192895)
Utilizator | Data | 7 aprilie 2018 17:04:30 | |
---|---|---|---|
Problema | Energii | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out"); //1 < G < 1001 1 < W < 5001 1 < EGi,CGi < 10001
int N,W,E,P;
long long V[50005];
int main()
{
f>>N>>W;
for(int i=1;i<=W;i++) V[i]=50001;
for(int i=1;i<=N;i++)
{ f>>E>>P;
for(int j=0;j<=W;j++)
if(j+E<W) V[E+j]=min(V[E+j],P+V[j]);
else
V[W]=min(V[W],P+V[j]);
}
if(V[W]==50001) g<<-1;
else g<<V[W];
return 0;
}