POJ 1326 - Mileage Bank

http://poj.org/problem?id=1326

概要

フライトの距離とクラスに応じて得られる ACMPerk mileage を答える.

答えが小数になる場合は切り上げて計算する.

制約

特になし

解法

やるだけ. 都市の名前は答えに関係無い.

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 int f(int miles, const string& code)
 6 {
 7   if (code == "F") {
 8     return 2*miles;
 9   } else if (code == "B") {
10     return 1.5*miles + 0.5;
11   } else {
12     return max(500, miles);
13   }
14 }
15 
16 int main()
17 {
18   string city;
19   while (cin >> city && city != "#") {
20     string code;
21     int miles;
22     cin >> city >> miles >> code;
23     int ans = f(miles, code);
24     while (cin >> city && city != "0") {
25       cin >> city >> miles >> code;
26       ans += f(miles, code);
27     }
28     cout << ans << endl;
29   }
30   return 0;
31 }
poj/1326.cc