完全背包问题
#include<iostream>
using namespace std;
int f[10001];
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int n,m;
int w[3]={150,200,350};
int v[3]={150,200,350};
cin>>n;
while(n--)
{
cin>>m;
for(int i=0;i<3;i++)
{
for(int j=v[i];j<=m;j++)
{
f[j]=max(f[j],f[j-v[i]]+w[i]); //找出容量最小,价值最大的!!
}
}
cout<<m-f[m]<<endl;
}
return 0;
}