Highest Price in Supply Chain (2

2018-06-17  本文已影响0人  刷爆服务器
#include<cstdio>
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
int N,root,depth,maxdepth=0,maxnum=0;
vector<int> v[100001];
void dfs(int index,int depth){
    if(v[index].size()==0){
        if(maxdepth==depth)
            maxnum++;
        if(maxdepth<depth){
            maxdepth=depth;
            maxnum=1;
        }
        return; 
    }   
    for(int i=0;i<v[index].size();i++)
        dfs(v[index][i],depth+1);
    
}
int main() {
    double p,r;
    int temp;
    cin>>N>>p>>r;
    for(int i=0;i<N;i++){
        cin>>temp;
        if(temp==-1){
            root=i;
            continue;
        }
        else{
            v[temp].push_back(i);
        }
    }
    dfs(root,0);
    printf("%.2f %d",p*pow(1+r/100,maxdepth),maxnum);
}
上一篇下一篇

猜你喜欢

热点阅读