Cod sursa(job #1673739)
| Utilizator | Data | 4 aprilie 2016 08:53:57 | |
|---|---|---|---|
| Problema | Energii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.63 kb |
#include<fstream>
#include<cstdio>
#include<climits>
#define MAX 99999999
using namespace std;
long n,m,w[1002],p[1002],d[10002],mi,i,j;
int main()
{
freopen("energii.in","r",stdin);
ofstream g("energii.out");
scanf("%ld %ld",&n,&m);
mi=MAX;
for(i=1;i<=n;i++)
scanf("%ld%ld",&w[i],&p[i]);
for(i=0;i<=m;i++)
d[i]=MAX;
for(i=1;i<=n;i++)
for(j=m;j>=1;j--)
{
if(j>w[i])
{
d[j]=min(d[j],d[j-w[i]]+p[i]);
}
else if(w[i]>=j)
d[j]=min(d[j],p[i]);
}
if(d[m]==MAX)
g<<-1;
else
g<<d[m];
g<<'\n';
return 0;
}
