Cod sursa(job #1766174)
Utilizator | Data | 27 septembrie 2016 17:34:35 | |
---|---|---|---|
Problema | Energii | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
using namespace std;
const int N=10005;
int e[N], c[N], s[N];
int main()
{
ifstream f("energii.in");
ofstream g("energii.out");
int G,W,i,j,k=0,minim;
f>>G>>W;
for(i=1;i<=G;i++)
f>>e[i]>>c[i];
for(i=1;i<=G;i++)
for(j=W;j>=1;j--)
if(j-e[i]>=0 && s[j-e[i]]+c[i]>s[j] && s[j]<W)
s[j]=s[j-e[i]]+c[i];
minim=200000;
for(i=1;i<=W;i++)
if(s[i]>=W && s[i]<minim) {minim=s[i];k++;}
if(k==0) g<<-1;
else g<<minim;
return 0;
}