POJ 1326 - Mileage Bank
http://poj.org/problem?id=1326
概要
フライトの距離とクラスに応じて得られる ACMPerk mileage を答える.
- First Class のときは,距離 + 100% のボーナス
- Business Class のときは,距離 + 50% のボーナス
- Economy Class のときは,500マイル以下なら 500,500マイル以上ならその分の mileage
答えが小数になる場合は切り上げて計算する.
制約
特になし
解法
やるだけ. 都市の名前は答えに関係無い.
poj/1326.cc1 #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 }