#include <cstdio>
#include <vector>
#include <cmath>
using namespace std;
const int maxn = 100010;
double p,r;
int maxDepth=0, num=0;
vector<int> T[maxn];
void DFS(int root, int depth){
if(T[root].size() == 0){
if(depth > maxDepth){
maxDepth = depth;
num = 1;
}else if(depth == maxDepth){
num++;
}
return;
}
for(int i = 0; i < T[root].size(); i++){
DFS(T[root][i], depth+1);
}
}
int main() {
int n;
scanf("%d %lf %lf", &n, &p, &r);
r = r / 100.0;
int tmp;
int root;
for(int i = 0; i < n; i++){
scanf("%d", &tmp);
if(tmp != -1) T[tmp].push_back(i);
else root = i;
}
DFS(root,0);
printf("%.2f %d\n", p * pow(1+r,maxDepth), num);
return 0;
}