Cod sursa(job #1936529)
Utilizator | Data | 23 martie 2017 10:30:21 | |
---|---|---|---|
Problema | Energii | Scor | 15 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int N=1005;
int n, vgoal, v[N], g[N], dp[N];
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<=n;++i)
for(int j=gmax;j>=g[i];--j)
dp[j]=max(dp[j], dp[j-g[i]]+v[i]);
int ans=0;
for(int i=0;i<=gmax;++i)
if(dp[i]>=vgoal)
{
fout<<i;
return 0;
}
fout<<-1;
return 0;
}