Mileage Bank

Mileage program of ACM (Airline of Charming Merlion) is really nice for the travelers flying frequently. Once you complete a flight with ACM, you can earn ACMPerk miles in your ACM Mileage Bank depended on mileage you actual fly. In addition, you can use the ACMPerk mileage in your Mileage Bank to exchange free flight ticket of ACM in future.

The following table helps you calculate how many ACMPerk miles you can earn when you fly on ACM.

When you fly ACM
Class Code
You'll earn
First Class
F
Actual mileage + 100% mileage Bonus
Business Class
B
Actual mileage + 50% mileage Bonus
Economy Class
1-500 miles
500+ miles
Y

500 miles
Actual mileage

It's shown that your ACMPerk mileage consists of two parts. One is your actual flight mileage (the minimum ACMPerk mileage for Economy Class for one flight is 500 miles), the other is the mileage bonus (its accuracy is up to 1 mile) when you fly in Business Class and First Class. For example, you can earn 1329 ACMPerk miles, 1994 ACMPerk miles and 2658 ACMPerk miles for Y, B or F class respectively for the fly from Beijing to Tokyo (the actual mileage between Beijing and Tokyo is 1329 miles). When you fly from Shanghai to Wuhan, you can earn ACMPerk 500 miles for economy class and ACMPerk 650 miles for business class (the actual mileage between Shanghai and Wuhan is 433 miles).

Your task is to help ACM build a program for automatic calculation of ACMPerk mileage.


Input

The input file contains several data cases. Each case has many flight records, each per line. The flight record is in the following format:

OriginalCity DistanceCity ActualMiles ClassCode

Each case ends with a line of one zero.

A line of one # presents the end of the input file.


Output

Output the summary of ACMPerk mileages for each test case, one per line.


Sample Input

Beijing Tokyo 1329 F
Shanghai Wuhan 433 Y
0
#


Sample Output

3158


Source: Asia - Beijing 2002



my c++  code :


#include <iostream>
using namespace std; 
int   main   () 

char   source[32],   dest[32],   code; 
int   miles,   sum   =   0; 
 
while   (1) 

scanf   ( "%s",   source); 
 
if   (source[0]   ==   '#') 
break; 
 
if   (source[0]   ==   '0') 

printf   ( "%d/n",   sum); 
sum   =   0; 
continue; 

 
scanf   ( "%s %d %c",   dest,   &   miles,   &   code); 
 
switch   (code) 

case   'F': 
sum   =   sum   +   miles   +   miles; 
break; 
 
case   'B': 
sum   =   sum   +   miles   +   (int)(0.5   *   miles   +   0.5); 
break; 
 
case   'Y': 
sum   =   sum   +   ((miles   <=   500)   ?   500   :   miles); 
break; 


return   0; 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值