码迷,mamicode.com
首页 > 其他好文 > 详细

Sum in the tree

时间:2019-01-30 16:11:20      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:The   for   out   class   \n   sum   sync   const   clu   

贪心

 

#include<bits/stdc++.h>
const int maxn = 100100;
int n;
int fa[maxn];
int s[maxn],s2[maxn];
int main(){
    std::ios::sync_with_stdio(false),std::cin.tie(0);
    std::cin >> n;
    for(int i=2;i<=n;++i)std::cin >> fa[i];
    for(int i=1;i<=n;++i)std::cin >> s[i],s2[i]=s[i],s[i]<0?s[i]=2e9:0;
    for(int i=n;i!=1;--i)if(s[fa[i]]>s[i])s[fa[i]]=s[i];
    long long sum=0;
    for(int i=1;i<=n;++i)if(s2[i]>=0&&s2[i]!=s[i])return std::cout << -1 << \n,0;
    else if(s[i]<=1e9)sum+=s[i]-s[fa[i]];
    std::cout << sum << \n;
}

 

Sum in the tree

标签:The   for   out   class   \n   sum   sync   const   clu   

原文地址:https://www.cnblogs.com/skip1978/p/10337964.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!