Cod sursa(job #1246255)
| Utilizator | Data | 20 octombrie 2014 20:24:38 | |
|---|---|---|---|
| Problema | Energii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int v[5005],g[1005],p[1005];
int main()
{int n,wt,i,j;
in>>n>>wt;
for(i=1;i<=n;i++)
in>>g[i]>>p[i];
for(i=1;i<=wt;i++)
v[i]=(1<<30);
for(i=1;i<=n;i++)
{
for(j=wt;j>=1;j--)
{
if(g[i]>=j)
v[j]=min(v[j],p[i]);
else
v[j]=min(v[j],v[j-g[i]]+p[i]);
}
}
if(v[wt]>100000)
out<<-1<<'\n';
else
out<<v[wt]<<'\n';
return 0;
}
