Pagini recente » Cod sursa (job #458004) | Cod sursa (job #879730) | Cod sursa (job #2564394) | Cod sursa (job #457517) | Cod sursa (job #2516445)
///n-10^3; w-5*10^3; e,cost-10^4
#include <fstream>
#include <set>
#define inf 0x7fffffff
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
const int lim=5e3+3;
int gr[lim];
int main()
{
ios_base::sync_with_stdio(false);
in.tie(0),out.tie(0);
int n,w,minn=inf;
in>>n>>w;
set<int> s;
s.insert(0);
gr[0]=0;
for(int i=1;i<=w-1;++i)
gr[i]=inf;
for(int i=1;i<=n;++i)
{
int e,cost;
in>>e>>cost;
auto start=s.begin(),stop=s.end();
do
{
--stop;
int engie=*stop;
if(engie+e<w)
gr[engie+e]=min(gr[engie+e],gr[engie]+cost),s.insert(engie+e);
else if(gr[engie]+cost<minn)
minn=gr[engie]+cost;
}while(start!=stop);
}
if(minn==inf)
{
out<<-1;
return 0;
}
out<<minn;
return 0;
}