i travel the whole binary tree.
#include<iostream>
#include<stdio.h>
#define Max_N 100
using namespace std;
int res=0,Max=0;
int N,W;
int t[Max_N][2];
void fun(int i,int j)
{
if(i==N)
{
if(res>Max&&j>=0)
{
Max=res;
printf("res is %d\n",res);
}
}
else
{
res+=t[i][1];
fun(i+1,j-t[i][0]);
res-=t[i][1];
fun(i+1,j);
}
}
int main()
{
scanf("%d%d",&N,&W);
for(int i=0;i<N;i++)
{
scanf("%d%d",&t[i][0],&t[i][1]);
}
fun(0,W);
printf("the final result is %d\n",Max);
return 0;
}
measure2:
#include<iostream>
#include<stdio.h>
#define Max_N 100
using namespace std;
int res=0,Max=0;
int N,W;
int t[Max_N][2];
void fun(int i,int j)
{
if(i==N)
{
if(res>Max&&j>=0)
{
Max=res;
printf("res is %d\n",res);
}
}
else
{
res+=t[i][1];
fun(i+1,j-t[i][0]);
res-=t[i][1];
fun(i+1,j);
}
}
int main()
{
scanf("%d%d",&N,&W);
for(int i=0;i<N;i++)
{
scanf("%d%d",&t[i][0],&t[i][1]);
}
fun(0,W);
printf("the final result is %d\n",Max);
return 0;
}