#include<cstdio>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<string>
#include<cstring>
#include<cmath>
#include<map>
#define ll long long
using namespace std;
int nm[100005];
vector<int>tree[100005];
double ans,m,inc;
int num;
void dfs(int u,double pri)
{
if(tree[u].size() == 0)
{
if(ans<pri)
{
ans = pri;
num = 1;
}
else if(ans == pri)num++;
return;
}
for(int i = 0;i<tree[u].size();i++)dfs(tree[u][i],pri*(1.0+inc/100));
}
int main()
{
int n,i,j,k,rt;
while(scanf("%d%lf%lf",&n,&m,&inc)!=EOF)
{
ans = num = 0;
for(i = 0;i<n;i++)tree[i].clear();
for(i = 0;i<n;i++)
{
scanf("%d",&k);
if(k!=-1)tree[k].push_back(i);
else rt = i;
}
dfs(rt,m);
printf("%.2lf %d\n",ans,num);
}
return 0;
}
pat1090 Highest Price in Supply Chain
最新推荐文章于 2025-03-03 15:35:14 发布