AOJ 789.买酒

Time Limit: 1000 ms   Case Time Limit: 1000 ms   Memory Limit: 64 MB
Total Submission: 43   Submission Accepted: 6
Description
众所周知,西瓜是一个很爱喝酒的人。有一天西瓜和朋友去酒楼喝酒,却发现酒楼在大酬宾,活动规则如下。
1.全场只要买酒可以买二送一,买2瓶酒就可以送一瓶酒,买4瓶酒就送两瓶酒。
2.4个空瓶可以换一瓶酒。
3.10个酒瓶盖可以换一瓶酒。
4.拿瓶子和盖子换酒可以享受换二送一的优惠(比如8个空瓶可以换两瓶酒,然后再送一瓶;12个空瓶+10个盖子可以换4瓶酒,再送两瓶),并且换来的酒产生的的瓶盖和空瓶依旧可以继续拿给酒楼换酒。
现在西瓜和朋友们的钱一共有N元, 酒一瓶M元,请问他们最多可以喝多少瓶酒。

 

Input
题目包含多组输入,EOF结束,数据最多不超过1000组,对于每组数据包含两个数字N,M表示西瓜和朋友们所有钱的数量和一瓶酒的单价,其中1<=N<=1000000, 1<=M<=50

 

Output
对于每组输入,输出单独一行,表示西瓜和他的朋友们最多能喝到多少瓶酒。

 

Sample Input
Original Transformed
500 10
50 5

 

Sample Output
Original Transformed
154
27

 

Hint
trick较多,请谨慎读题并且思考情况
 
 
题意比较简单,但是需要考虑的情况比较多
由于需要最大程度多买酒,而且其中有买两瓶送一瓶的优惠,所以,我们应该尽可能地成对买酒。
 
有以下情况需要单独考虑:
  1. 能兑换奇数瓶酒,把其中一瓶不兑换,留着以后组成一对兑换
  2. 留着待兑换的一瓶酒不能再组上队,只能直接兑换
  3. 留着待兑换的一瓶酒不能组上队,但兑换后又可以兑换酒//最早未考虑到这种情况

 

 1 /*
 2 By:OhYee
 3 Github:OhYee
 4 Email:oyohyee@oyohyee.com
 5 Blog:http://www.cnblogs.com/ohyee/
 6 
 7 かしこいかわいい?
 8 エリーチカ!
 9 要写出来Хорошо的代码哦~
10 */
11 
12 #include <cstdio>
13 #include <algorithm>
14 #include <cstring>
15 #include <cmath>
16 #include <string>
17 #include <iostream>
18 #include <vector>
19 #include <list>
20 #include <queue>
21 #include <stack>
22 using namespace std;
23 
24 #define REP(n) for(int o=0;o<n;o++)
25 
26 int Do(int N,int M) {
27     int b = 0,a = 0,ans = 0;
28     //a酒瓶 b酒瓶盖
29     ans = N / M;//能买的酒数目
30 
31     ans += ans / 2;
32 
33     a = ans;
34     b = ans;
35 
36     int t = 0;
37     while(!(a < 4 && b < 10 && t != 1)) {
38         t += a / 4 + b / 10;
39         a -= (a / 4) * 4;
40         b -= (b / 10) * 10;
41         int add = (t / 2) * 2;
42 
43         //如果这一轮没有不能兑换,则兑换之前没兑换的
44         if(add == 0)
45             add = t;
46         
47         t -= add;
48         add += add / 2;
49         ans += add;
50         a += add;
51         b += add;
52     }
53     return ans;
54 }
55 
56 int main() {
57     int a,b;
58     while(scanf("%d%d",&a,&b) != EOF) {
59         printf("%d\n",,Do(a,b));
60     }
61     return 0;
62 }

 

 

 
posted @ 2016-04-10 19:07  OhYee  阅读(111)  评论(0编辑  收藏  举报