米斯蒂娅的营业额

image

题面描述

米斯蒂娅的夜雀食堂开业啦!

经营时米斯蒂娅若能做出正确满足顾客词条需求的菜,即可获得一定数量的金额,小费与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;
}
posted @ 2024-07-20 14:16  兀十三  阅读(32)  评论(0)    收藏  举报