無限の光を放つのは人間の心であり、無限の闇を生み出すのも人間の心であり、光と闇が絡み合って戦うこの世界は、懐かしくて無力な世界です。
サプライチェーンとは、小売業者(小売業者)、流通業者、およびサプライヤ(サプライヤ)のネットワークであり、サプライヤから顧客への製品の移動に関わるすべての人です。
1つのルートサプライヤーから始めて、チェーン上の全員が価格Pで自分のサプライヤーから製品を購入し、Pよりもr%高い価格でそれらを販売または配布します。サプライチェーンの各メンバーは、ルートサプライヤーであり、供給サイクルはありません。
ここでサプライチェーンを考えると、一部の小売業者に期待できる最高価格を伝える必要があります。
入力仕様:
各入力ファイルには1つのテストケースが含まれています。いずれの場合も、最初の行には3つの正の数が含まれています。N(≤105)、サプライチェーンのメンバーの合計数(したがって、0からN-1まで番号が付けられます)。P、ルートサプライヤーから提供された価格。そして、r、各ディストリビューターまたは小売業者のための価格増分のパーセント。次に、次の行にはN個の数値が含まれています。各数値S iは、i番目のメンバーのサプライヤーのインデックスです。ルートサプライヤーのS rootは-1と定義されています。行内のすべての数値はスペースで区切られています。
出力仕様:
各テストケースについて、一部の小売業者から予想できる最も高い価格を小数点以下2桁まで正確に1行で印刷し、最も高い価格で販売する小売業者の数を示します。2つの数値の間にはスペースが1つ必要です。価格が10 10を超えないことが保証されています。
入力例:
9 1.80 1.00
1 5 4 4 -1 4 5 3 6
出力例:
1.85 2
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#include<climits>//INT_MAX
//#include<bits/stdc++.h>
#define PP pair<ll,int>
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3fll
#define dinf 1000000000000.0
#define PI 3.1415926
typedef long long ll;
using namespace std;
int const mod=1e9+7;
const int maxn=1e5+10;
vector<int>a[maxn];
vector<int>jg;
int n,mx;
double P,r;
void dfs(int v,int h)
{
if(a[v].size()==0)
{
if(h>mx)
{
mx=h;
jg.clear();
jg.push_back(v);
}
else if(h==mx)
jg.push_back(v);
return;
}
for(int i=0;i<a[v].size();i++)
{
int u=a[v][i];
dfs(u,h+1);
}
}
int main()
{
scanf("%d%lf%lf",&n,&P,&r);
r/=100;
int root;
for(int i=0;i<n;i++)
{
int x;
scanf("%d",&x);
if(x!=-1)
a[x].push_back(i);
else
root=i;
}
dfs(root,1);
printf("%.2f %d",P*pow(1+r,mx-1),jg.size());
return 0;
}