目次に戻る
タイトル
販売と供給のための木を考えると、根はユニークです。ツリーのルート価格はpであり、ルートノードから開始すると、価格は下位レイヤーごとにr%上昇します。最低価格と、すべてのリーフノードの中で最低価格のリーフノードの数を見つけます。
サンプル(コピー可能)
10 1.80 1.00
3 2 3 5
1 9
1 4
1 7
0
2 6 1
1 8
0
0
0
//output
1.8362 2
注意点
#include<bits/stdc++.h>
using namespace std;
int n,m,tmp,mindepth=100010,num=0;
double p,r;
vector<int> node[100010];
void DFS(int root,int depth){
if(node[root].size()==0){
if(depth==mindepth)num++;
if(depth<mindepth){
mindepth=depth;
num=1;
}
}
for(int i=0;i<node[root].size();i++){
DFS(node[root][i],depth+1);
}
}
int main(){
cin>>n>>p>>r;
r/=100;
for(int i=0;i<n;i++){
scanf("%d",&m);
while(m--){
scanf("%d",&tmp);
node[i].push_back(tmp);
}
}
DFS(0,0);
printf("%.4f %d",p*pow(1+r,mindepth),num);
return 0;
}