关注
//第二题70%
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <algorithm>
#include <vector>
#include <math.h>
using namespace std;
typedef long long ll;
bool compare(int a,int b)
{
return a>b;
}
void dfs(vector<int > &sontree,vector<int > &others,int *father,int *value,int i,int n)
{
for(int j=0;j<n-1;j++)
{
if(father[j]==i)
{
sontree.push_back(value[j+1]);
dfs(sontree,others,father,value,j+1,n);
}
}
return;
}
int main()
{
int n;
while(cin>>n)
{
int father[n-1];
for(int i=0;i<n-1;i++)
cin>>father[i];
int value[n];
for(int i=0;i<n;i++)
cin>>value[i];
vector<int > sontree;
vector<int > others;
int sum=0;
for(int i=1;i<=n-1;i++)
{
sontree.clear();
others.clear();
sontree.push_back(value[i]);
dfs(sontree,others,father,value,i,n);
sort(sontree.begin(),sontree.end(),compare);
for(int i=0;i<sontree.size();i++)
cout<<sontree[i]<<' ';
cout<<endl;
for(int i=0;i<n;i++)
{
vector<int>::iterator it=find(sontree.begin(),sontree.end(),value[i]);
if (it==sontree.end())
{
others.push_back(value[i]);
}
}
sort(others.begin(),others.end(),compare);
for(int i=0;i<others.size();i++)
cout<<others[i]<<' ';
cout<<endl;
sum+=abs(sontree[0]-others[0]);
}
cout<<sum<<endl;
}
}
查看原帖
点赞 2
相关推荐
02-07 10:52
复旦大学 Java
今天的算法题刷了吗:哎,职场向来如此,能遇到好mentor不容易,这些气不必过意不去,来日方长,算是知道mt也不是真心待你,先做好自己的事情,保证交付!用实力和态度说话 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 春招什么时候投? #
10304次浏览 177人参与
# 牛友的春节生活 #
7384次浏览 154人参与
# 春节前,你还在投简历吗? #
13839次浏览 163人参与
# 春节提前走,你用什么理由请假? #
10184次浏览 244人参与
# 牛客AI体验站 #
14765次浏览 267人参与
# 实习到现在,你最困惑的一个问题 #
4427次浏览 126人参与
# 从夯到拉,锐评职场mentor #
4919次浏览 77人参与
# 备战春招/暑实,现在应该做什么? #
4862次浏览 152人参与
# 工作后,你落下了哪些病根 #
32345次浏览 277人参与
# 怎么给家人解释你的工作? #
51551次浏览 208人参与
# 距离春招还有一个月,你现在是什么开局? #
6812次浏览 112人参与
# 上班摸鱼,你都在干些什么? #
39072次浏览 246人参与
# 没有家庭托举的我是怎么找工作的 #
35692次浏览 266人参与
# 聊聊Agent开发 #
24475次浏览 591人参与
# 暑期实习什么时候投? #
7022次浏览 165人参与
# 什么是优秀的实习经历 #
35916次浏览 387人参与
# 面试经验谈 #
406375次浏览 7217人参与
# 今年秋招你收到了多少封邮件? #
37509次浏览 277人参与
# 推荐一个值得做的AI项目 #
6705次浏览 178人参与
# 考研失败就一定是坏事吗? #
221496次浏览 1539人参与
网易游戏公司福利 637人发布