用01背包做的,只拿了40分
#include<bits/stdc++.h>
using namespace std;
int n,m;
int u[30],w[30],a[30];
int main(){
scanf("%d%d",&n,&m);
for(int i=0;i<m;i++)
scanf("%d%d",&u[i],&w[i]);
int res=0;
while(a[m]==0){
a[1]++;
for(int i=0;i<m;i++){
if(a[i]>1){
a[i+1]++;
a[i]=0;
}
}
int money=0,num=0,sum=0;
for(int i=0;i<m;i++){
if(a[i]==1){
money+=u[i]*w[i];
num+=w[i];
sum+=u[i];
}
}
if(sum<=n){
res=max(res,money);
}
}
printf("%d\n",res);
return 0;
}