Pagini recente » Cod sursa (job #1265917) | Cod sursa (job #1720290) | Cod sursa (job #2923733) | Cod sursa (job #2576735) | Cod sursa (job #1006910)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
typedef struct{
int indice;
int gr;
int val;
}obiect;
vector<obiect> v;
int main()
{
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n, G, i, a[5003], j, max_val=0;;
fin>>n>>G;
for(i=0;i<n;i++)
{
obiect aux;
fin>>aux.gr>>aux.val;
aux.indice=i+1;
v.push_back(aux);
}
a[0]=0;
for( i=1; i<=G; i++)
a[i]=-1;
for(i=1; i<=n; i++ )
for( j=G-v[i-1].gr; j>=0; j--)
if( a[j]!=-1 && ( a[j]+v[i-1].val > a[j+v[i-1].gr] ) )
{
a[j+v[i-1].gr]=a[j]+v[i-1].val;
if( a[j+v[i-1].gr] > max_val)
max_val = a[ j + v[i-1].gr];
}
fout<<max_val;
return 0;
}