Pagini recente » Cod sursa (job #2894224) | Cod sursa (job #1737980) | Cod sursa (job #2890545) | Cod sursa (job #752021) | Cod sursa (job #2355438)
#include <iostream>
#include <fstream>
#include <set>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int a[1005][10005],n,E,g[100005],c[100005];
set<int, greater<int> > S;
void Citire()
{
set<int, greater<int> >::iterator it;
int i,j,emax=0,w,minim=10000005;
for(i=1; i<=1004; ++i)
for(j=1; j<=10004; ++j)
a[i][j]=100005;
fin>>n>>E;
for(i=1; i<=n; ++i)
{
fin>>g[i]>>c[i];
a[i][g[i]]= min(c[i],a[i-1][g[i]]);
S.insert(g[i]);
for(it=S.begin(); it!=S.end(); ++it)
{
w=*it;
a[i][w+g[i]]=min( a[i-1][w+g[i]], a[i-1][w]+c[i] );
}
for(it=S.begin(); it!=S.end(); ++it)
{
w=*it;
S.insert(w+g[i]);
}
}
for(i=E; i<=10004; ++i)
minim=min(minim,a[n][i]);
fout<<minim;
}
int main()
{
Citire();
return 0;
}