Cod sursa(job #1293210)
Utilizator | Cojocaru Ionut adnionut | Data | 15 decembrie 2014 16:24:35 |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.06 kb |
#include<fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
struct per
{
int e,c;
};
int v[5002];
int G, W;
per x[1005],aux;
int main()
{
int i, j, p;
fin>>G>>W;
for(i=1;i<=G;i++)
{
fin>>x[i].e>>x[i].c;
}
/*
for(i=1;i<=G;i++)
{
for(j=i+1;j<=G;j++)
{
if(x[i].e<x[j].e)
{
aux=x[i];
x[i]=x[j];
x[j]=aux;
}
}
}
*/
for(i=1;i<=W;i++)
{
v[i]=1000000000;
}
v[0]=0;
for(i=1;i<=G;i++)
{
for(j=W;j>=0;j--)
{
if(v[j]<1000000000)
{
p=x[i].e+j;
if(p>W)p=W;
if(v[j]+x[i].c<v[p])
{
v[p]=v[j]+x[i].c;
}
}
}
}
if(v[W]==1000000000)
{
fout<<-1;
}
else
{
fout<<v[W];
}
fout.close();
return 0;
}