在t分钟内吃两种耗时不同的汉堡,首先保证耗时最多,然后保证汉堡吃最多,最后剩下的时间喝酒
#include<iostream>
#include<map>
#include<string>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<queue>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int a[2];
int dp[2][10010];
int i,j,t;
while(cin>>a[0]>>a[1]>>t)
{
memset(dp,0,sizeof(dp));
for(i=0;i<2;i++)
for(j=a[i];j<=t;j++)
if(dp[0][j]<dp[0][j-a[i]]+a[i])
{
dp[0][j]=dp[0][j-a[i]]+a[i];
dp[1][j]=dp[1][j-a[i]]+1;
}
else if(dp[0][j]==dp[0][j-a[i]]+a[i])
dp[1][j]=max(dp[1][j],dp[1][j-a[i]]+1);
cout<<dp[1][t];
if(dp[0][t]!=t)
cout<<" "<<t-dp[0][t];
cout<<endl;
}
}
Return of the Aztecs
Problem C: | Homer Simpson |
Time Limit: 3 seconds Memory Limit: 32 MB |
Homer Simpson, a very smart guy, likes eating Krusty-burgers. It takes Homer m minutes to eat a Krusty- burger. However, there�s a new type of burger in Apu�s Kwik-e-Mart. Homer likes those too. It takes him n minutes to eat one of these burgers. Given t minutes, you have to find out the maximum number of burgers Homer can eat without wasting any time. If he must waste time, he can have beer. |
Input
Input consists of several test cases. Each test case consists of three integers m, n, t (0 < m,n,t < 10000). Input is terminated by EOF.
Output
For each test case, print in a single line the maximum number of burgers Homer can eat without having beer. If homer must have beer, then also print the time he gets for drinking, separated by a single space. It is preferable that Homer drinks as little beer as possible.
Sample Input
3 5 54 3 5 55
Sample Output
18 17