Pagini recente » Cod sursa (job #1052213) | Cod sursa (job #1279901) | Cod sursa (job #1270405) | Cod sursa (job #2901524) | Cod sursa (job #1059833)
#include<fstream>
#define inf (1<<30)
#define maxn 1003
#define maxg 5003
using namespace std;
ifstream fi("energii.in");
ofstream fo("energii.out");
int a[maxn][maxg],i,j,n,w;
int g[maxn],p[maxn];
inline int min(int a,int b){
if(a<b) return a; else return b;
}
int main(){
fi>>n>>w;
for(i=1;i<=n;i++) fi>>g[i]>>p[i];
for(i=0;i<=n;i++)
for(j=0;j<=w;j++) a[i][j]=inf;
for(i=0;i<=n;i++) a[i][0]=0;
for(i=1;i<=n;i++)
for(j=1;j<=w;j++)
if(j>=g[i]) a[i][j]=min(a[i-1][j],p[i]+a[i-1][j-g[i]]);
else a[i][j]=min(a[i-1][j],p[i]);
if(a[n][w]!=inf) fo<<a[n][w];
else fo<<"-1";
fi.close();
fo.close();
return 0;
}