題面描述
米斯蒂婭的夜雀食堂開業啦!
經營時米斯蒂婭若能做出正確滿足顧客詞條需求的菜,即可獲得一定數量的金額,小費與combo(連擊)次數。combo次數越高小費倍率越高,每次獲得combo,小費倍率增加0.1,即時生效於當前訂單,小費倍率最高為0.5。但是,如果沒能讓顧客滿意,不僅收不到錢,還會斷combo(連擊數歸零)。
米斯蒂婭想知道自己一天的營業額是多少,可她是個鳥腦袋,你能幫助她解決這個問題嗎?
小費的數額 = 客人所付的錢 * 小費倍率。
從一位客人身上獲得的錢 = 客人所付的錢 + 小費的數額。
輸入格式
第一行輸入一個整數 n ,表示有 n 個顧客。
接下來 n 行,每行輸入1個整數 x ,為每個顧客付的錢。若為0,則表示顧客不滿意。
輸出格式
輸出一天的營業額,結果保留兩位小數。
資料範圍
\(1 \leq n \leq 100\)
\(0 \leq x \leq 5000\)
輸入樣例
8
80 20 15 66 0 330 600 89
輸出樣例
1422.60
題解
需要額外再開兩個變數記錄combo次數與小費倍率,按題意模擬即可。
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
typedef long long ll;
int n, combo;
double x, rate, res;
int main() {
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> x;
if (x) {
++combo;
if (combo >= 5) rate = 0.5;
else rate += 0.1;
res += x * (1 + rate);
}
else {
combo = 0;
rate = 0;
}
}
printf("%.2lf\n", res);
return 0;
}