#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. 功夫传人
猜你喜欢
转载自blog.csdn.net/gyh0730/article/details/80232786
今日推荐
周排行