#include <iostream>
#include <vector>
#include <queue>
using namespace std;
const int maxn=100010;
double price[maxn],increment,minprice=100000000.0;
int N,minnum;
vector<int> child[maxn];
void BFS(){
queue<int> q;
q.push(0);
while(!q.empty()){
int t=q.front();
q.pop();
if(child[t].size()==0){
if(price[t]<minprice){
minprice=price[t];
minnum=1;
}else if(price[t]==minprice) minnum++;
}
for(int i=0;i<child[t].size();i++){
price[child[t][i]]=price[t]*(1.0+0.01*increment);
q.push(child[t][i]);
}
}
}
int main(){
scanf("%d%lf%lf",&N,&price[0],&increment);
for(int i=0;i<N;i++){
int tnum,tch;
scanf("%d",&tnum);
for(int j=0;j<tnum;j++){
scanf("%d",&tch);
child[i].push_back(tch);
}
}
BFS();
printf("%.4f %d",minprice,minnum);
return 0;
}
PAT A1106
最新推荐文章于 2021-01-13 20:20:46 发布