注:和换硬币的形式差不多。
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
#define N 11111
int dp[N];
int main()
{
int a[2],t;
int i,j;
while(cin>>a[0]>>a[1]>>t)
{
memset(dp,-1,sizeof(dp));
dp[0]=0;
for(i=0;i<2;i++)
for(j=a[i];j<=t;j++)
if(dp[j-a[i]]>-1) //保证j-a[i]的钱可以兑换硬币。
dp[j]=max(dp[j-a[i]]+1,dp[j]);
for(i=t;i>=0;i--)
if(dp[i]>=0) break;
cout<<dp[i];
if(i<t) cout<<" "<<t-i;
cout<<endl;
}
return 0;
}