//main:输入V1,V2,n,输入商品,从大到小遍历二维容积,记得V2不能为0,最大值,从大到小遍历得到最小消耗,输出减去的值
//有两个容量怎么办:和一个容量一样处理
//转换为01背包问题最关键的是 如果设置体积和价值,以及结果是什么属性
include[HTML_REMOVED]
using namespace std;
const int N=1010,M=510;
int V1,V2,n;
int f[N][M];
int main()
{
cin>>V1>>V2>>n;
for(int i=1;i<=n;i)
{
int v1,v2;
cin>>v1>>v2;
for(int j=V1;j>=v1;j–)//二维体积和一维体积的处理方式一样,因为都是把所有情况的体积遍历一遍
for(int k=V2-1;k>=v2;k–)
f[j][k]=max(f[j][k],f[j-v1][k-v2]+1);//记得知道价值,且加上价值
}
cout<[HTML_REMOVED]0&&f[V1][k-1]==f[V1][V2-1])k–;//这个说明相同的属性都是连在一起的,从大到小最后一个就是最小的
cout<<V2-k<<endl;
/*for(int i=0;i<=V2-1;i)//从小到大开始遍历找到和最大值一样的且体积消耗最小的
{//因为这里是把所有情况体积的值都计算保存了
//最后一层是在所有商品中选,所有容积下的最大值都得到保存了
if(f[V1][i]==f[V1][V2-1])
{
cout<<V2-i<<endl;
return 0;
}
}*/
return 0;
}
```