Cod sursa(job #1004907)
| Utilizator | Data | 3 octombrie 2013 20:01:28 | |
|---|---|---|---|
| Problema | Energii | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.58 kb |
#include<fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int optim[5001], w[5001], p[5001], n, i, j, g, c, sol;
int main() {
fin >> n; fin >> c;
for (i = 1; i <= n; i++) {
fin >> p[i] >> w[i];
g = g + w[i];
}
for (i = 1; i <= n; i++)
for (j = g - w[i]; j >= 0; j--)
if (optim[j + w[i]] < optim[j] + p[i])
optim[j + w[i]] = optim[j] + p[i];
for (i = 1; i <= g; i++)
if (optim[i] == c){
sol = i; i = g + 1;
}
fout << sol;
}
