Pagini recente » Monitorul de evaluare | Diferente pentru preoni-2007/runda-3/solutii intre reviziile 26 si 25 | Diferente pentru summer-challenge-2007/solutii/runda-2 intre reviziile 19 si 18 | Statistici FMI Vlad-Stefan Stoleru (darkonnas) | Cod sursa (job #2168889)
#include <bits/stdc++.h>
using namespace std;
const int inf=1e9;
int N,G,W[100000],P[100000],DP[2][10000];
bool u=1;
int main(){
ifstream cin("energii.in");
ofstream cout("energii.out");
cin >>N>>G;
for (int i=1;i<=N;i++) cin >>W[i]>>P[i];
for (int j=0;j<2;j++)
for (int i=0;i<=G;i++) DP[j][i]=inf;
for (int i=1;i<=N;i++,u=!u){
for (int j=1;j<=G;j++){
if (W[i]>=j) DP[u][j]=min(DP[!u][j],P[i]);
else DP[u][j]=min(DP[!u][j-W[i]]+P[i],DP[!u][j]);
}
}
if (DP[!u][G]==inf) cout <<-1;
else cout <<DP[!u][G];
}