Pagini recente » Statistici G Tudor (tudor199) | Cod sursa (job #148064) | Cod sursa (job #1548866) | Cod sursa (job #1127686)
#include<fstream>
#include<algorithm>
#include<cstring>
#include<vector>
#include<string>
#include<queue>
#define abs(x) ((x>0)?(x):(-(x)))
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define ll long long
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
const int Nmax = 6000;
const int INF = 1<<30;
int N,W;
int A[Nmax];
int main(){
in>>N>>W;
for(int i=1;i<=W;i++) A[i]=INF;
for(int i=1;i<=N;i++){
int E,C;
in>>E>>C;
for(int j=W-1;j>=1;j--){
if(A[j] && A[j]+C < A[(j+E<W?j+E:W)]){
A[(j+E<=W?j+E:W)]=A[j]+C;
}
}
if(C < A[(E<W?E:W)]) A[(E<=W?E:W)]=C;
}
out<<(A[W]<INF?A[W]:-1)<<'\n';
return 0;
}