Mileage Bank
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 8410 | Accepted: 3423 |
Description
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.
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.
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 Y 1-500 miles 500 miles 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.
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
Hint
When calculate bonus ,be sure you rounded x.5 up to x+1
此题的关键在于每次计算Bonus的时候进行四舍五入
import java.util.*; import java.text.*; class FRecord { String from; String to; int miles; String type; public FRecord(String a, String b, int c, String d) { this.from = a; this.to = b; this.miles = c; this.type = d; } } public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); ArrayList record = new ArrayList(); while(true) { String tmp = cin.nextLine(); if(tmp.equals("#")) break; else if(tmp.equals("0")) { int total = getSummary(record); record.clear(); System.out.println(total); } else { String[] str = tmp.split(" "); FRecord fr = new FRecord(str[0], str[1], Integer.valueOf(str[2]).intValue(), str[3]); record.add(fr); } } } private static int getSummary(ArrayList record) { int result = 0; Iterator iter = record.iterator(); while(iter.hasNext()) { FRecord fr = (FRecord)iter.next(); if(fr.type.equals("F")) { result += fr.miles * 2; DecimalFormat df = new DecimalFormat("#"); result = Integer.valueOf(df.format(result)).intValue(); } else if(fr.type.equals("B")) { result += fr.miles; result += (fr.miles + 1)/2; DecimalFormat df = new DecimalFormat("#"); result = Integer.valueOf(df.format(result)).intValue(); } else { if(fr.miles > 500) { result += fr.miles; DecimalFormat df = new DecimalFormat("#"); result = Integer.valueOf(df.format(result)).intValue(); } else { result += 500; DecimalFormat df = new DecimalFormat("#"); result = Integer.valueOf(df.format(result)).intValue(); } } } return result; } }
发表评论
-
POJ ACM习题【No.2328】
2009-07-05 19:43 898Guessing Game Time ... -
POJ ACM习题【No.3157】
2009-04-26 23:54 1634Java vs C++ Time Lim ... -
POJ ACM习题【No.2924】
2009-04-26 11:52 922Gauß in Elementary School ... -
POJ ACM习题【No.3176】
2009-04-26 10:53 1043Cow Bowling Time Lim ... -
POJ ACM习题【No.3173】
2009-04-25 23:30 902Parkside's Triangle ... -
POJ ACM习题【No.2845】
2009-04-25 22:25 121401000001 Time Limit: ... -
POJ ACM习题【No.2140】
2009-04-25 21:26 934Herd Sums Time Limit ... -
POJ ACM习题【No.1969】
2009-04-25 20:59 859Count on Canton Time ... -
POJ ACM习题【No.2840】
2009-04-25 19:24 1004Big Clock Time Limit ... -
POJ ACM习题【No.2521】
2009-04-24 22:41 847How much did the businessman l ... -
POJ ACM习题【No.3325】
2009-04-24 21:15 1092ICPC Score Totalizer Software ... -
POJ ACM习题【No.2756】
2009-04-24 20:28 771Autumn is a Genius T ... -
POJ ACM习题【No.3062】
2009-04-24 20:10 808Celebrity jeopardy ... -
POJ ACM习题【No.1547】
2009-04-23 20:03 774Clay Bully Time Limi ... -
POJ ACM习题【No.1552】
2009-04-23 19:39 750Doubles Time Limit: ... -
POJ ACM习题【No.1007】
2009-04-23 19:24 849DNA Sorting Time Lim ... -
POJ ACM习题【No.1565】
2009-04-22 22:40 840Skew Binary Time Lim ... -
POJ ACM习题【No.2403】
2009-04-22 22:18 859Hay Points Time Limi ... -
POJ ACM习题【No.1862】
2009-04-22 20:12 700Stripies Time Limit: ... -
POJ ACM习题【No.3224】
2009-04-22 19:57 742Lab杯 Time Limit: 1 ...
相关推荐
方便大家有针对性地联系 祝大家AC愉快~
pojACM题目分类,便于各类型同学分别做题有所参考
相信大家在做poj上的题目的时候如果没有分类的话很迷茫吧....这里有一份目前比较全面的poj题目分类..
02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ题库使用指南.docx02.北大POJ...
acm数据结构总结.doc acm数据结构总结.doc
poj acm题解,包括绝大部分poj题目的题解,可以供acm爱好者学习研究
本文件是ACM里的一些题目的源码、原题和习题的分析及详细解答。欢迎各位下载
http://acm.pku.edu.cn/JudgeOnline/ acm的AC解题报告
POJ ACM 1015 Jury Compromise 两种解法 解题报告
西工大C语言POJ习题答案.docx
PKU 、POJ ACM/ICPC300多题的代码,还有各种典型问题的分类代码
poj 2007 Scrambled Polygon.md
poj 1984 Navigation Nightmare.md
poj 3435 Sudoku Checker.md
poj 2900 Griddy Hobby.md
poj 2430 Lazy Cows.md
poj 3183 Stump Removal.md
poj 2403 Hay Points.md
poj 2941 Homogeneous Squares.md
poj 1313 Booklet Printing.md