BOSS的收入

题目
在一个销售团队中,每个销售员在完成销售后都需要支付一部分利润给他们的上级,这种结构类似于金字塔。当一个销售员赚取100元时,他需要支付15元给他的直接上级。现在,给定每个销售员的销售额和他们的直接上级,你的任务是计算金字塔顶部的Boss的总收
输入描述:
第一行是一个整数N,表示销售团队中的销售员数量。
接下来的N行,每行有三个数字,分别代表:
销售员的ID
该销售员的直接上级的ID
销售员的销售额
注意: Boss的直接上级ID为0.
输出描述:
输出一行,包含两个整数。第一个是Boss的ID(这应该总是0),第二个是Boss的总收入。
示例:
输入
3
1 0 223
2 0 323
3 2 1203
输出:
0 108
解释:
销售员2从销售中赚取了323元,并从销售员3那里获得了额外的180元(1203的15%),所以销售员2的总收入是503元。
Boss从销售员1、2和3那里总共获得了108元(223的15%+323的15%+180的15%)。

def calculate_boss_income(sales_data):
    from collections import defaultdict
    # 构造字典存储当前销售员的直接下属和销售额
    sales_dict=defaultdict(lambda :[[],0])
    for data in sales_data:
        sales_dict[data[0]][1]=data[2]
        sales_dict[data[1]][0].append(data[0])
    def dfs(id=0):
        for subordinate in sales_dict[id][0]:
            sales_dict[id][1]+=dfs(subordinate)*0.15
        return sales_dict[id][1]
    boss_sales=dfs()
    return 0,boss_sales
# 示例输入
n = 3
sales_data = [(1, 0, 223), (2, 0, 323), (3, 2, 1203)]

# 计算并输出结果
boss_id, boss_income = calculate_boss_income(sales_data)
print(boss_id, boss_income)


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值