# -*- 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
电脑耗电量 Python --贝壳2018秋招数据挖掘工程师在线笔试题目
最新推荐文章于 2020-11-29 21:35:28 发布