【华为机试题】 [Python] Boss的收入

题目

一个XX产品行销总公司,只有一个 boss,其有若干一级分销,一级分销又有若干二级分销,每个分销只有唯一的上级分销

规定每个月,下级分销需要将自己的总收入(自己的+下级上交的)每满100元上交15元给自己的上级.
现给出一组分销的关系,和每个分销的收入,请找出 boss并计算出这 boss 的收入。

比如:收入100元上交15元,收入199元(9元不够100)上交15元,收入200元,上交30元。

分销关系和收入:分销id 上级分销的ld 收入
分销ID范围0…65535
收入范围:0…65535,单位元
提示: 输入的数据只存在1个 boss,不存在环路

输入描述
第1行输入关系的总数量N
第2行开始,输入关系信息,格式:分销ID 上级分销ID 收入
输出描述
boss的ID 总收入
补充说明
给定的输入数据都是合法的,不存在重复

示例1
输入
5
1 0 100
2 0 200
3 0 300
4 0 200
5 0 200
输出
0 150


示例2:
输入
3
1 0 223
2 0 323
3 2 1203
输出
0 105
说明
2的最终收入等于323+1203/100*15=323+180
0的最终收入等于(323+180+ 223)/100*15=105

代码

from unittest.mock import patch

class SalaryStructure:
    # 首先我们构造一个数据结构,类似一个多叉树employees存储我们下级直属员工的信息
    def __init__(self, id, parent_id, salary):
        # 员工ID
        self.id = id
        # 上级ID
        self.parent_id = parent_id
        # 员工薪水
        self.salary = salary
        # 下级员工信息type = SalaryStructure()
        self.employees = []

    def __str__(self):
        return '%s %s %s %s' % (self.id,self.parent_id,self.salary,str(list
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

比特本特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值