Pagini recente » Cod sursa (job #433726) | Cod sursa (job #1780558) | Cod sursa (job #2119945) | Cod sursa (job #2720265) | Cod sursa (job #1701876)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int nmax=1000, smax=5000, inf=(1<<30)-1;
int v[nmax+1], d[2*smax+1], c[nmax+1];
int main () {
int n, s;
fin>>n>>s;
for (int i=1; i<=n; i++) {
fin>>v[i]>>c[i];
}
d[0]=0;
for (int i=1; i<=2*smax; i++) {
d[i]=inf;
}
for (int i=1; i<=n; i++) {
for (int j=2*smax; j>=v[i]; j--) {
if (c[i]+d[j-v[i]]<d[j]) {
d[j]=c[i]+d[j-v[i]];
}
}
}
int sol=2*smax+1;
for (int i=s; i<=2*smax; i++) {
if (d[i]<sol) {
sol=d[i];
}
}
if (sol==2*smax+1) {
fout<<"-1\n";
} else {
fout<<sol<<"\n";
}
return 0;
}