Cod sursa(job #698063)
| Utilizator | Data | 29 februarie 2012 12:16:04 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include<fstream>
#include<iostream>
using namespace std;
ifstream f("rucsac.in");
ofstream qq("rucsac.out");
int c[10001],k[10001];
int main ()
{
int max,p,gr,i,j,n,g,maxin=0;
f>>n>>g;
k[0]=1;
for(i=1;i<=n;i++)
{
f>>gr>>p;
for(j=g;j>=0;j--)
{
if(k[j]==1)
{
if(j+gr<=g)
{k[j+gr]=1;
if(c[j+gr]<c[j]+p)
{c[j+gr]=c[j]+p;
if(maxin<c[j+gr])
maxin=c[j+gr];
}
}
}
}
}
qq<<maxin;
}