Cod sursa(job #2844900)
Utilizator | Chitan Rafael rafaelrafy | Data | 6 februarie 2022 08:37:09 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.55 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
long long N, G, A[10001], B[10001], GR[5001], PR[5001];
int main() {
fin>>N>>G;
for(int i=1; i<=N; i++)
fin>>GR[i]>>PR[i];
for(int i=1; i<=N; i++)
{
for(int j=1; j<=G; j++)
if(GR[i] > j)
B[j] = A[j];
else
B[j] = max(A[j], A[j-GR[i]] + PR[i]);
for(int j=1; j<=G; j++)
A[j] = B[j];
}
fout<<A[G];
return 0;
}