Pagini recente » Borderou de evaluare (job #2247357) | Cod sursa (job #198801) | Cod sursa (job #90522) | Borderou de evaluare (job #3236502) | Cod sursa (job #2650194)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const int nmax=1000, xmax=10000;
int v[nmax+1], d[xmax+1], c[nmax+1];
int main(){
int n,s;
fin>>n>>s;
for(int i=1;i<=n;i++){
fin>>v[i]>>c[i];
}
for(int i=1;i<=xmax;i++){
d[i]=nmax*xmax+1;
}
for(int i=1;i<=n;i++){
for(int j=xmax-v[i];j>=0;j--){
if(d[j+v[i]]>d[j]+c[i]){
d[j+v[i]]=d[j]+c[i];
}
}
}
int sol=nmax*xmax+1;
for(int i=s;i<=xmax;i++){
if(d[i]<sol){
sol=d[i];
}
}
if(sol<nmax*xmax+1){
fout<<sol<<"\n";
}else{
fout<<-1;
}
return 0;
}