Cod sursa(job #866194)
Utilizator | Mihai Nitu Impaler_009 | Data | 27 ianuarie 2013 17:31:56 |
---|---|---|---|
Problema | Energii | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.45 kb |
#include <fstream>
#define inf 10002
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n,P,v[1001],c[1001],s[10001];
int main()
{
int i,j;
fin>>n>>P;
for (i=1;i<=n;i++) fin>>v[i]>>c[i];
for (i=1;i<=P;i++) s[i]=inf;
for (i=1;i<=n;i++)
{
for (j=P;j-v[i]>=0;j--) if (s[j-v[i]]+c[i]<s[j]) s[j]=s[j-v[i]]+c[i];
for (j=1;j<v[i];j++) if (c[i]<s[j]) s[j]=c[i];
}
fout<<s[P];
}