#include <iostream>
#include <set>
#include <string>
#include <vector>
#include <cmath>
using namespace std;
vector<int> v[100005];
int val[100005];
double z,r;
double total;
void dfs(int node,double gl){
if(v[node].size() == 0){
total += gl * val[node];
}
for(int i = 0; i < v[node].size(); i++){
dfs(v[node][i],gl * (1 - r / (1.0 * 100)));
}
}
int main(void){
int n;
cin>>n>>z>>r;
int num;
for(int i = 0; i < n; i++){
cin >> num;
if(num == 0){
int va;
cin>>va;
val[i] = va;
}
else{
for(int j = 0; j < num; j++){
int t;
cin>>t;
v[i].push_back(t);
}
}
}
dfs(0,z);
printf("%d",(int)total);
return 0;
}
L2-020. 功夫传人
最新推荐文章于 2024-05-31 11:51:21 发布