Cod sursa(job #2050185)
| Utilizator | Data | 27 octombrie 2017 23:40:26 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int G, W, ap[10000], w, aw[10000], raspuns=0;
int x[10000];
int main()
{
int i, j;
f>>G>>W;
for(i=1; i<=G; i++)
f>>aw[i]>>ap[i];
x[0]=0;
for(i=1; i<=G; i++)
{
for(j=W-aw[i]; j>=0; --j)
{
if(x[j+aw[i]] < x[j]+ap[i])
{
x[j+aw[i]] = x[j]+ap[i];
if(x[j+aw[i]] > raspuns)
raspuns = x[j+aw[i]];
}
}
}
if(raspuns>=W)
g<<raspuns;
else g<<"-1";
return 0;
}
