#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
vector<int> child[100010];
int n;
double r,p;
int maxh = -1,num = 0;
void dfs(int v,int h)
{
if(child[v].size() == 0)
{
if(h == maxh) num++;
else if(h > maxh)
{
maxh = h;
num = 1;
}
return;
}
for(int i = 0; i < child[v].size(); i++)
dfs(child[v][i],h+1);
}
int main()
{
int u,root;
scanf("%d %lf %lf",&n,&p,&r);
r /= 100;
for(int i = 0; i < n; i++)
{
scanf("%d",&u);
if(u != -1)
child[u].push_back(i);
else root = i;
}
dfs(root,0);
double pro = p * pow((1 + r),maxh);
printf("%.2f %d",pro,num);
return 0;
}