#include <stdio.h>
typedef struct tree {
int first;
int next;
}tree;
int main()
{
tree t[100000];
int n, i, supplier, Q[100000], front = 0, rear = 0, x, first = 0, cnt = 1, last = 1,root,level_num=1;
double p, r;
scanf("%d %lf %lf", &n, &p, &r);
for (i = 0; i < n; i++)
t[i].first = -1;
for (i = 0; i < n; i++) {
scanf("%d",&supplier);
if (supplier == -1)
root = i;
else {
t[i].next = t[supplier].first;
t[supplier].first = i;
}
}
Q[rear++] = root;
int level = 0;
while (front != rear) {
x = Q[front++];
first++;
for (i = t[x].first; i != -1; i = t[i].next) {
Q[rear++] = i;
cnt++;
}
if (first == last) {
level++;
last = cnt;
if(cnt!=first)
level_num = cnt - first;
}
}
for (i = 0; i < level-1; i++)
p *= (1 + r / 100);
printf("%.2lf %d",p,level_num);
return 0;
}
1090. Highest Price in Supply Chain
最新推荐文章于 2021-09-03 20:31:31 发布