Pagini recente » Cod sursa (job #1949533) | Cod sursa (job #1583854) | Cod sursa (job #144811) | Cod sursa (job #241558) | Cod sursa (job #507790)
Cod sursa(job #507790)
#include <fstream>
using namespace std;
const int W = 10001;
const int INF = 1<<30;
ifstream in("energii.in");
ofstream out("energii.out");
int n, wmin = INF,w;
struct generator{
int e,c;
} v[1<<10];
int consum [W];
inline int min(int x,int y){
if(x<y)
return x;
return y;
}
void prelucrare(){
int i,j;
for(i=1;i<=n;i++){
for(j=w;j>0;j--){
if(consum[j]!=INF){
consum[j+v[i].e]=min(consum[j+v[i].e],consum[j]+v[i].c);
}
}
consum[v[i].e]=min(consum[v[i].e],v[i].c);
}
for(j=w;j<W;j++){
if(consum[j]<wmin)
wmin=consum[j];
}
if(wmin==INF)
out<<"-1";
else
out<<wmin<<"\n";
}
int main(){
in>>n>>w;
int i;
for(i=1;i<=n;i++){
in>>v[i].e>>v[i].c;
}
for(i=0;i<W;i++){
consum[i]=INF;
}
prelucrare();
return 0;
}