Cod sursa(job #1936554)
Utilizator | Data | 23 martie 2017 10:49:29 | |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int N=1005, INF=2e9;
int n, vgoal, v[N], g[N], dp[10010];
int main()
{
fin>>n>>vgoal;
int gmax=0;
for(int i=1;i<=n;++i)
fin>>v[i]>>g[i], gmax+=g[i];
for(int i=1;i<=2*vgoal;++i)
dp[i]=INF;
for(int i=1;i<=n;++i)
for(int j=2*vgoal;j>=v[i];--j)
dp[j]=min(dp[j], dp[j-v[i]]+g[i]);
int ans=INF;
for(int i=vgoal;i<=2*vgoal;++i)
ans=min(ans, dp[i]);
fout<<((ans==INF)?-1:ans);
return 0;
}