PAT L2-020. 功夫传人
原题链接
简单
作者:
青丝蛊
,
2021-04-10 10:59:25
,
所有人可见
,
阅读 188
#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
vector<int> v[N];
int dao[N];
bool vis[N];
int n;
double z, r, sum;
void dfs(int x, double z)
{
vis[x] = true;
if (dao[x])
sum += dao[x] * z;
for (auto c : v[x])
{
if (!vis[c]) dfs(c, z * r);
}
}
int main()
{
cin >> n >> z >> r;
r = (100 - r) / 100;
for (int i = 0; i < n; i++)
{
int k;
cin >> k;
if (!k) cin >> dao[i];
while (k--)
{
int x; cin >> x;
v[i].push_back(x);
}
}
dfs(0, z);
cout << (int)sum << endl;
return 0;
}