博客
关于我
CodeForces - 10A_模拟
阅读量:136 次
发布时间:2019-02-28

本文共 2279 字,大约阅读时间需要 7 分钟。

Tom is interested in power consumption of his favourite laptop. His laptop has three modes. In normal mode laptop consumes P1 watt per minute. T1 minutes after Tom moved the mouse or touched the keyboard for the last time, a screensaver starts and power consumption changes to P2 watt per minute. Finally, after T2 minutes from the start of the screensaver, laptop switches to the “sleep” mode and consumes P3 watt per minute. If Tom moves the mouse or touches the keyboard when the laptop is in the second or in the third mode, it switches to the first (normal) mode. Tom’s work with the laptop can be divided into n time periods [l1, r1], [l2, r2], …, [ln, rn]. During each interval Tom continuously moves the mouse and presses buttons on the keyboard. Between the periods Tom stays away from the laptop. Find out the total amount of power consumed by the laptop during the period [l1, rn].

Input
The first line contains 6 integer numbers n, P1, P2, P3, T1, T2 (1 ≤ n ≤ 100, 0 ≤ P1, P2, P3 ≤ 100, 1 ≤ T1, T2 ≤ 60). The following n lines contain description of Tom’s work. Each i-th of these lines contains two space-separated integers li and ri (0 ≤ li < ri ≤ 1440, ri < li + 1 for i < n), which stand for the start and the end of the i-th period of work.
Output

Output the answer to the problem.

Examples

Input

1 3 2 1 5 100 10

Output

30

Input

2 8 4 2 5 1020 3050 100

Output

570

题目大意:一台电脑有三种工作状态,每个工作状态有不同的耗电功率,求耗电值。


这题挺考察分类细节的,一个地方错了就过不了。

inline int f(int x, int l, int r){       return x * (r - l);}int main(){       int n, p1, p2, p3, t1, t2;    cin >> n >> p1 >> p2 >> p3 >> t1 >> t2;    int ans = 0;    int last = -1;    while (n--)    {           int a, b;        cin >> a >> b;        ans += f(p1, a, b);        if (last != -1)            if (a - last <= t1)            {                   ans += f(p1, last, a);            }            else            {                   ans += f(p1, last, last + t1);                if (a - last - t1 <= t2)                {                       ans += f(p2, last + t1, a);                }                else                {                       ans += f(p2, last + t1, last + t1 + t2);                    ans += f(p3, last + t1 + t2, a);                }            }        last = b;    }    cout << ans << endl;    return 0;}

转载地址:http://jeod.baihongyu.com/

你可能感兴趣的文章
Mysql学习总结(21)——MySQL数据库常见面试题
查看>>
Mysql学习总结(22)——Mysql数据库中制作千万级测试表
查看>>
Mysql学习总结(23)——MySQL统计函数和分组查询
查看>>
Mysql学习总结(24)——MySQL多表查询合并结果和内连接查询
查看>>
Mysql学习总结(25)——MySQL外连接查询
查看>>
Mysql学习总结(26)——MySQL子查询
查看>>
Mysql学习总结(27)——Mysql数据库字符串函数
查看>>
Mysql学习总结(28)——MySQL建表规范与常见问题
查看>>
Mysql学习总结(29)——MySQL中CHAR和VARCHAR
查看>>
Mysql学习总结(2)——Mysql超详细Window安装教程
查看>>
Mysql学习总结(30)——MySQL 索引详解大全
查看>>
Mysql学习总结(31)——MySql使用建议,尽量避免这些问题
查看>>
Mysql学习总结(32)——MySQL分页技术详解
查看>>
Mysql学习总结(33)——阿里云centos配置MySQL主从复制
查看>>
Mysql学习总结(35)——Mysql两千万数据优化及迁移
查看>>
Mysql学习总结(36)——Mysql查询优化
查看>>
Mysql学习总结(37)——Mysql Limit 分页查询优化
查看>>
Mysql学习总结(38)——21条MySql性能优化经验
查看>>
Mysql学习总结(39)——49条MySql语句优化技巧
查看>>
Mysql学习总结(3)——MySql语句大全:创建、授权、查询、修改等
查看>>