Pagini recente » Cod sursa (job #35079) | Cod sursa (job #2910564) | Monitorul de evaluare | Cod sursa (job #1846809) | Cod sursa (job #1006939)
#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[10000], 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*2; 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;
for(i=1;i<=G*2;i++)
if(max_val<a[i])
max_val=a[i];
fout<<max_val;
return 0;
}