Cod sursa(job #1720000)
Utilizator | Data | 20 iunie 2016 21:28:49 | |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <fstream>
using namespace std;
int main()
{
ifstream fin ("energii.in");
ofstream fout("energii.out");
int i,j,m,c,e,G,W;
unsigned long v[1000000];
fin>>G>>W;
for (i=1;i<=W+1;i++)
v[i]=1000000000;
for (i=1;i<=G;i++)
{
fin>>e>>c;
for (j=W;j>=1;j--)
{
m=j+e;
if (m>W) m=W;
if (v[m]>v[j]+c) v[m]=v[j]+c;
if (v[m]>v[m+1]) v[m]=v[m+1];
}
for (j=1;j<=e;j++)
if (v[j]>c)
v[j]=c;
}
if (v[W]==1000000000) fout<<-1;
else fout<<v[W];
return 0;
}