电脑耗电量 Python --贝壳2018秋招数据挖掘工程师在线笔试题目

# -*- encoding:utf -8 -*-
'''
贝壳2018数据挖掘工程师在线笔试题目(内推)
众所周知,新款笔记本电脑都拥有自己的省电方案,现有某品牌笔记本电脑,正常工作状态下耗电量为P1/min,当机主离开电脑
T1min时,电脑进入屏幕保护状态,耗电量为P2/min,当电脑进入屏保状态T2min后,电脑进入睡眠状态,耗电量为P3/min。
已知电脑主人的一天有n段时间在使用电脑工作,即[l1, r1], [l2, r2],…, [ln, rn],在[rn-1, ln]期间是没有操作电脑的,问
在[l1, rn]时间内,电脑共耗电多少瓦。
例:输入
n,p1,p2,p3,T1,T2,其中,n表示使用电脑的时间段。
2 8 4 2 5 10
20 30
50 100
输出:
570
解释:
总耗电量 = 80 + 40 + 40 + 10 + 400 = 570W
20-30min: 80W = 10min * 8W/min
30-35min:40W = 5min * 8W/min
35-45min: 40W = 10min * 4W/min
45-50min: 10W = 5min * 2W/min
50-100min: 400W = 50 * 8W/min
'''
#思路:分段函数
s = raw_input()
a = map(int,s.split())#存放输入数据n,p1,p2,p3,T1,T2
n = a[0]
b = []
res = 0
for i in range(n):
    s = raw_input()
    b.append(map(int,s.split()))
if 1 <= n <= 100 and 0 <= a[1] and 0 <= a[2] and 0 <= a[3] and a[1] <= 100 and a[2]<=100 and a[3]<=100 and a[4]>=1 and a[5] <= 60:#条件
    if n == 1:
        res += (b[0][1] - b[0][0])*a[1]#只有一个时间段
    else:
        res += (b[n - 1][1] - b[n - 1][0]) * a[1]
        for m in range(n-1):
            res += (b[m][1] - b[m][0]) * a[1]
            tempb1 = b[m]
            tempb2 = b[m+1]
            d = tempb2[0] - tempb1[1]
            if d <= a[4]:#还没到屏保时间
                res += d*a[1]
            elif a[4] < d <= a[5]:#没到睡眠时间
                res = res + a[4]*a[1] + (d - a[4])*a[2]
            else:#超出睡眠时间
                res = res + a[4] * a[1] + a[5] * a[2] + (d-a[5]-a[4] )* a[3]
print res
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值