[语言月赛202303] Out for Dinner B
题目描述
Bessie 一家今晚要外出就餐。饭馆中只有三种菜,这三种菜的名称分别为 A
、B
、C
。
饭店在进行折扣活动。如果我们称消费打
Y
Y
Y 折,则意味着支付金额是菜品金额的
Y
10
\dfrac{Y}{10}
10Y 倍。具体的,如果购买了 B
菜且未购买 C
菜,则消费打八折;如果购买了 C
菜且未购买 B
菜,则消费打七折;如果 B
、C
两道菜都购买了,则消费打六折。
这一次 Bessie 一家人只点了两道菜。这两道菜可能是相同的。最终结账时,菜品金额是 x x x 元。给定两道菜的名字和 x x x,请你求出 Bessie 的支付金额。
输入格式
输入共两行。
第一行为一个整数 x x x,代表 Bessie 一家的消费金额。
第二行为两个大写英文字母 a , b a, b a,b,代表 Bessie 一家点的两道菜的名称。
输出格式
输出共一行一个整数,代表 Bessie 一家这一次在打折后需要支付多少钱。
样例 #1
样例输入 #1
100
AB
样例输出 #1
80
样例 #2
样例输入 #2
100
CA
样例输出 #2
70
提示说明
样例 1 解释
Bessie 一家如果购买了 B
菜且未购买 C
菜,整次消费会打八折。他们本次未打折前需要支付
100
100
100 元,因此打折后需要支付
100
×
80
%
=
80
100 \times 80\% = 80
100×80%=80 元。
数据规模与约定
对于
100
%
100\%
100% 的数据,保证
10
≤
x
≤
1
0
18
10 \leq x \leq 10 ^ {18}
10≤x≤1018 且
x
x
x 是
10
10
10 的倍数,
a
,
b
a, b
a,b 分别是大写英文字母 A
、B
、C
中的一个。
请注意,我们不保证 a , b a, b a,b 一定不相同,这意味着可能出现 a , b a, b a,b 相同的情况。
代码内容
// #include <iostream>
// #include <vector>//容器,存数组的数,表数组的长度
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
// const ll N=1e6+10;
// ll s[N][30];
int main()
{
ll x;
cin>>x;
string arr;
cin>>arr;
ll b,c;
b=c=0;
for(ll i=0;i<2;i++)
{
if(arr[i]=='B')
b++;
else if(arr[i]=='C')
c++;
}
ll cost,a=10;
if(b&&!c) a=8;
else if(!b&&c) a=7;
else if(b&&c) a=6;
cost=x/10*a;
cout<<cost<<endl;
return 0;
}