【PAT甲级】1079. Total Sales of Supply Chain (25)

来源:互联网 发布:卡在windows启动界面 编辑:程序博客网 时间:2024/05/01 12:51
#include <stdio.h>#include <iostream>#include <vector>#include <stack>#include <math.h>using namespace std;int main() {    int n;    double p, r;    cin >> n >> p >> r;    vector<int> *v = new vector<int>[n];    int *count = new int[n];    for (int i = 0; i < n; i++) {        int num, tmp;        cin >> num;        if (num > 0) {            for(int j = 0; j < num; j++) {                cin >> tmp;                v[i].push_back(tmp);            }        } else {            cin >> count[i];        }    }    stack<int> tree;    stack<int> layer;    tree.push(0);    layer.push(0);    double sum = 0.0;    while (tree.size()) {        int tmp = tree.top();        tree.pop();        int l = layer.top();        layer.pop();        if (v[tmp].empty()) {            sum += p * pow((1 + r/100), l) * count[tmp];        }        for (int i = 0; i < v[tmp].size(); i++) {            tree.push(v[tmp][i]);            layer.push(l + 1);        }    }    printf("%.1lf\n", sum);    return 0;}
原创粉丝点击