Cod sursa(job #1377428)
Utilizator | Data | 5 martie 2015 21:42:55 | |
---|---|---|---|
Problema | Energii | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <fstream>
#define INF 0x3f3f3f3f
#define DIM 1005
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int G,E[DIM],C[DIM],W,D[5*DIM];
int main(){
fin>>G>>W;
for(int i=1;i<=G;i++)
fin>>E[i]>>C[i];
for(int i=1;i<=W;i++)
D[i]=INF;
for(int i=1;i<=G;i++)
for(int j=0;j<=G;j++)
if(D[j]!=INF){
D[min(W,j+E[i])]=min(D[min(W,j+E[i])],D[j]+C[i]);
}
if(D[W]!=INF)
fout<<D[W]<<"\n";
else
fout<<"-1\n";
fin.close();fout.close();
return 0;
}