【华为od机试】金字塔-Python3

■ 题目描述

微商模式比较典型,下级每赚 100 元就要上交 15 元,给出每个级别的收入,求出金字塔尖上的人收入。

比如:

(代理商代号) (上级代理商代号) (代理商转的钱)

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

#模拟数据输入
n =['1 0 223','2 0 323','3 2 1203']

#正式代码
id_dic = {}
up_dic = {}

if __name__ == '__main__':
    import collections
    id_dic = {}
    maps ={}
    up_dic = collections.defaultdict(list)
    for i in n:
        arr = list(map(int, i.split(" ")))
        # 记录ID     的 上级ID
        maps[arr[0]] =  arr[1]
        id_dic[arr[0]] = arr[2]
        up_dic[arr[1]].append(arr[2])

    for id in  id_dic :
        if id in up_dic:
            id_dic[id] += sum(up_dic[id])//100*15

    up_id = min(up_dic)
    ans = 0
    for m,val in  maps.items():
        if val == up_id:
            ans += id_dic[m]//100*15
    print(up_id)
    print(ans)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值