Pagini recente » Cod sursa (job #966814) | Cod sursa (job #1080854) | Cod sursa (job #2362471) | Cod sursa (job #2894941) | Cod sursa (job #2192)
Cod sursa(job #2192)
#include <fstream>
#define Nmax 5005
#define MAX 999999999
using namespace std;
ofstream fout("energii.out");
/*
void show(int V[], int W, int min, int max)
{int i;
for(i=0; i<=W+10; i++)
fout<<V[i]<<" ";
fout<<" *** "<<min<<" *** "<<max<<'\n';
}
*/
int main(void)
{int V[Nmax]={0}, n, C[Nmax], W, E[Nmax];
ifstream fin("energii.in");
fin>>n>>W;
int i;
for(i=1;i<=n; i++)
fin>>E[i]>>C[i];
fin.close();
V[0]=0;
for(i=1;i<=W;i++)
V[i]=-1;
int min=MAX, max=0, k, m;
int j;
for(i=1;i<=n;++i)
{for(j=W-1;j>=0;--j)
if(V[j]!=-1) {k=E[i]+j;
if(k>=W) { if(V[j]+C[i]<min) min=V[j]+C[i]; }
else if( V[k]==-1 || V[j]+C[i] < V[k]) V[k]=V[j]+C[i];
}
// if(E[i]+max>=W) max=W-1;
// else max+=E[i];
// show(C,W,min,max);
}
//show(C,W,min);
if(min==MAX) { fout<<"-1\n"; fout.close(); return 0;}
fout<<min<<'\n';
fout.close();
return 0;
}