문제
링크
풀이
#include <cmath>
#include <iomanip>
#include <iostream>
using namespace std;
inline double dot(double a, char b) {
switch (b) {
case 'R': return a * 0.55;
case 'G': return a * 0.7;
case 'B': return a * 0.8;
case 'Y': return a * 0.85;
case 'O': return a * 0.9;
case 'W': return a * 0.95;
}
return a;
}
inline double coupon(double a, char c) {
return c == 'C' ? a * 0.95 : a;
}
inline double cash(double a, char d) {
return d == 'P' ? a : a - fmod(a, 0.1) + (fmod(a, 0.1) > 0.05 ? 0.1 : 0);
}
void solve(void) {
double a; char b, c, d; cin >> a >> b >> c >> d;
cout << fixed << setprecision(2) << "$" << cash(coupon(dot(a, b), c), d) << "\n";
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n; cin >> n;
while (n--) solve();
return 0;
}