|
- #include<iostream>
- using namespace std;
- int maxv,n,i,j;
- int v[30],p[30];///v表示价格 p表示重要度
- int ans;
- void dfs(int x,int sumv,int sum)
- {
- if (sumv>maxv) return;
- else if (x>=n+1) ans=max(ans,sum);
- else
- {
- dfs(x+1,sumv,sum);
- dfs(x+1,sumv+v[x],sum+v[x]*p[x]);
- }
- }
- int main()
- {
- cin>>maxv>>n;
- for (i=1;i<=n;i++) cin>>v[i]>>p[i];
- dfs(1,0,0);
- cout<<ans;
- return 0;
- }
复制代码 |
|