Mai intai trebuie sa te autentifici.
Cod sursa(job #777328)
Utilizator | Data | 11 august 2012 21:48:30 | |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.66 kb |
/* Energii */
#include<fstream>
#define inf 1000000
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int n,w,i,j;
int m[3][5001];
int e[1001],c[1001];
int main()
{f>>n>>w;
for(i=1; i<=n; i++)
f>>e[i]>>c[i];
for(j=1; j<=w; j++)
m[0][j]=inf;
for(i=1; i<=n; i++)
{for(j=1; j<=w; j++)
{m[1][j]=m[0][j];
if(j>e[i])
{if(m[1][j]>m[0][j-e[i]]+c[i])
m[1][j]=m[0][j-e[i]]+c[i];}
else
{if(m[1][j]>c[i])
m[1][j]=c[i];}
}
for(j=1; j<=w; j++)
m[0][j]=m[1][j];
}
if(m[1][w]!=inf)
g<<m[1][w];
else
g<<"-1";
return 0;}