Cod sursa(job #744816)
| Utilizator | Data | 9 mai 2012 18:14:03 | |
|---|---|---|---|
| Problema | Energii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.53 kb |
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
int a[3][5001];
int main ()
{
ifstream f("energii.in");
ofstream g("energii.out");
int n,W,o=999999,p,w,i,j,mat=2;
f>>n>>W;
for(i=1;i<=n;++i)
{
f>>w>>p;
for(j=1;j<=W;++j)
if(i==1)
if(w>=j)a[3-mat][j]=p;
else a[3-mat][j]=o;
else
if(w>j)a[3-mat][j]=min(a[mat][j],p);
else a[3-mat][j]=min(a[mat][j],a[mat][j-w]+p);
mat=3-mat;
}
if(a[mat][W]<o)g<<a[mat][W]<<"\n";
else g<<"-1\n";
f.close();
g.close();
return 0;
}