#include<cstdio>
#include<vector>
#include<iostream>
#include<cstring>
using namespace std;
int n,root;
double p,r;
vector <int> child[100005];
int ran[100005],vis[100005];
void dfs(int x)
{
for(int i=0;i<child[x].size();i++)
{
int h=child[x][i];
if(vis[h]==0)
{
ran[h]=ran[x]+1;
vis[h]=1;
dfs(h);
}
}
}
int main()
{
cin>>n;
cin>>p>>r;
int x;
for(int i=0;i<n;i++)
{
cin>>x;
if(x==-1) root=i;
else
child[x].push_back(i);
}
dfs(root);
int maxn=0,num=0;
for(int i=0;i<n;i++)
{
if(ran[i]>maxn)
{
maxn=ran[i];
num=1;
}
else if(ran[i]==maxn)
{
num++;
}
}
double f=p;
for(int i=0;i<maxn;i++)
f*=(1+r/100);
printf("%.2lf %d\n",f,num);
return 0;
}
1090. Highest Price in Supply Chain (25)
最新推荐文章于 2021-09-03 20:31:31 发布