Pagini recente » Cod sursa (job #2923868) | Cod sursa (job #1589719) | Cod sursa (job #2935168) | Cod sursa (job #2514955) | Cod sursa (job #2362191)
#include <bits/stdc++.h>
#define f first
#define s second
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
const int INF=10000007;
pair<int,int> a[1001];
int dp[2][5001];
int main(){
int n,w,i,j;
bool b=1;
in>>n>>w;
for(i=1; i<=n; ++i)
in>>a[i].f>>a[i].s;
for(i=0; i<=w; ++i)
dp[0][i]=INF;
for(i=1; i<=n; ++i, b=!b){
for(j=0; j<=w; ++j){
if(j>=a[i].f)
dp[b][j]=min(dp[!b][j], dp[!b][j-a[i].f]+a[i].s);
else dp[b][j]=min(dp[!b][j], a[i].s);
}
}
out<<(dp[!b][w-1]==INF? -1 : dp[!b][w-1]);
return 0;
}