Pagini recente » Cod sursa (job #1262045) | Cod sursa (job #1531134) | Cod sursa (job #1911745) | Cod sursa (job #382969) | Cod sursa (job #1573375)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int s[100001],c[1001],p[1001],n,d,rez=-1;
void citire()
{
f>>n>>d; int i;
for(i=1;i<=n;i++)
f>>p[i]>>c[i];
f.close();
}
void dinamica()
{
int max1=0,j,i;
for(i=1;i<=10000;i++)s[i]=-1;
for(i=1;i<=n;i++)
for(j=max1;j>=0;j--)
if((s[p[i]+j]>s[j]+c[i]&&s[j]!=-1)||(s[p[i]+j]==-1&&s[j]!=-1))
{
s[p[i]+j]=s[j]+c[i];
if(max1<p[i]+j)max1=p[i]+j;
if(p[i]+j>=d)
if(rez==-1||rez>s[p[i]+j])
rez=s[p[i]+j];
}
g<<rez;
}
int main()
{
citire();
dinamica();
return 0;
}