在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
时间: 2024-12-28 00:30:19