Cod sursa(job #679172)
| Utilizator | Data | 12 februarie 2012 20:36:41 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.52 kb |
#include<iostream>
#include<fstream>
using namespace std;
# define WMAX 10001
ifstream f("energii.in");
ofstream g("energii.out");
int G,W,D[2][WMAX],i,cw,E[WMAX],C[WMAX],l=0;
int main(){
f>>G>>W;
for(i=1;i<=G;i++){
f>>E[i]>>C[i];
}
for(i=1;i<=G;i++,l=1-l){
for(cw=0;cw<=W;cw++){
D[l][cw]=D[1-l][cw];
if(E[i]<=cw && D[l][cw]<D[1-l][cw-E[i]]+C[i]){
D[l][cw]=D[1-l][cw-E[i]]+C[i];
}
}
}
if(D[1-l][W]<W){
g<<"-1"<<'\n';
}
else{g<<D[1-l][W];
}
f.close();
g.close();
return 0;
}
