Pagini recente » Cod sursa (job #2217007) | Cod sursa (job #1633962) | Cod sursa (job #2817646) | Cod sursa (job #3206834) | Cod sursa (job #891671)
Cod sursa(job #891671)
#include <fstream>
#include<algorithm>
#define maxn 5001
#define maxg 10001
using namespace std;
unsigned short int w[maxn],p[maxn];
int a[2][maxg];
int main()
{
unsigned short int i,n,gr,cw,cl=0,line;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
f>>n>>gr;
for(i=1;i<=n;++i)
f>>w[i]>>p[i];
while(cl<=n)
{
line=cl%2;
if(line)
for(cw=0;cw<=gr;++cw)
{
a[line][cw]=a[line-1][cw];
if(w[cl+1]<=cw)
a[line][cw]=max(a[line-1][cw],a[line-1][cw-w[cl+1]]+p[cl+1]);
}
else
for(cw=0;cw<=gr;++cw)
{
a[line][cw]=a[line+1][cw];
if(w[cl+1]<=cw)
a[line][cw]=max(a[line+1][cw],a[line+1][cw-w[cl+1]]+p[cl+1]);
}
cl++;
}
g<<a[1][gr];
f.close();
g.close();
return 0;
}