Pagini recente » Cod sursa (job #1766940) | Monitorul de evaluare | Cod sursa (job #3032079) | Cod sursa (job #474133) | Cod sursa (job #1773340)
#include <fstream>
#define INF 50000000
#define g first
#define p second
using namespace std;
int n, i, j, N, G, D[10001], sol;
pair <int, int> v[5001];
ifstream fin("muzeu.in");
ofstream fout("muzeu.out");
int main(){
fin>>n>>G;
for(i=1;i<=n;i++)
fin>>v[i].g>>v[i].p;
//sort(v+1, v+n+1);
for (i=1;i<=G;i++)
D[i] = -INF;
D[0] = 0;
for (i=1;i<=n;i++)
for (j=G;j>=0;j--)
if (D[j] != -INF && j + v[i].g <= G) {
D[j + v[i].g] = max( D[j + v[i].g], D[j] + v[i].p );
sol = max(sol, D[j + v[i].g]);
}
fout<<sol;
return 0;
}