#include<iostream>
#include<cstdio>
using namespace std;
int N,v[35],p[35],C,MAX;
void run(int x,int V,int P)//物品x放不放,目前为止的体积V,背包价值P;
{
if(V>C) return;
if(x>N){if(P>MAX) MAX=P;return;}
for(int i=1;i>=0;i--)
run(x+1,V+v[x*i],P+p[x*i]);
}
int main()
{
freopen("test.in","r",stdin);
freopen("test.out","w",stdout);
scanf("%d%d",&C,&N);
for(int i=1;i<=N;i++)
scanf("%d%d",&v[i],&p[i]);
run(1,0,0);
printf("%d",MAX);
return 0;
}
时间: 2025-01-10 07:02:13