Cod sursa(job #206645)
Utilizator | Data | 8 septembrie 2008 12:20:48 | |
---|---|---|---|
Problema | Energii | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include<fstream>
using namespace std;
int G, W, E[1000], C[1000];
int cost[15001];
int main(){
int i,mini,j;
ifstream f("energii.in");
f>>G>>W;
for(i=0;i<G;i++)
f>>E[i]>>C[i];
f.close();
for(i=1;i<15001;i++)
cost[i]=2000000000;
mini=2000000000;
for(i=0;i<G;i++)
for(j=15000;j>=E[i];j--){
cost[j]=min(cost[j-E[i]]+C[i],cost[j]);
if(j>=W)
mini=min(cost[j],mini);
}
ofstream g("energii.out");
if(mini==2000000000) g<<"-1\n";
else g<<mini<<'\n';
g.close();
return 0;
}