Pagini recente » Cod sursa (job #2936879) | Cod sursa (job #1342914) | Cod sursa (job #2123757) | Cod sursa (job #2090933) | Cod sursa (job #681189)
Cod sursa(job #681189)
#include<fstream>
using namespace std;
ofstream out("rucsac.out");
int n,gmax,c[10001],g[10001],Cmax[10001],uz[1000][1000];
void citire();
void dinamic();
int main()
{
citire();
dinamic();
if(Cmax[gmax]==-1)
out<<-1;
else
out<<Cmax[gmax];
return 0;
}
void citire()
{
ifstream in("rucsac.in");
int i;
in>>n>>gmax;
for(i=1;i<=n;i++)
in>>g[i]>>c[i];
}
void dinamic()
{
int S,k,i;
for(S=1;S<=gmax;S++)
Cmax[S]=-1;
for(S=1;S<=gmax;S++)
for(i=1;i<=n;i++)
if(g[i]<=S&&Cmax[S-g[i]]!=-1&&uz[S-g[i]][i]==0)
if(Cmax[S]<c[i]+Cmax[S-g[i]])
{
Cmax[S]=c[i]+Cmax[S-g[i]];
for(k=1;k<=n;k++)
uz[S][k]=uz[S-g[i]][k];
uz[S][i]=1;
}
}