CF1804G.Flow Control

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Raj has a single physical network line that connects his office to the Internet. This line bandwidth is bb bytes per millisecond.

There are nn users who would like to use this network line to transmit some data. The ii -th of them will use the line from millisecond sis_i to millisecond fif_i inclusive. His initial data rate will be set to did_i . That means he will use data rate equal to did_i for millisecond sis_i , and then it will change according to the procedure described below.

The flow control will happen as follows. Suppose there are mm users trying to transmit some data via the given network line during millisecond xx . Denote as tit_i the data rate that the ii -th of these mm users has at the beginning of this millisecond. All tit_i are non-negative integer values.

  1. If m=0m = 0 , i. e. there are no users trying to transmit data during this millisecond, nothing happens.
  2. If the sum of all tit_i is less than or equal to bb , each active user successfully completes his transmission (the ii -th active user transmits tit_i bytes). After that, the data rate of each active user grows by 11 , i. e. each tit_i is increased by 11 .
  3. If the sum of all tit_i is greater than bb , the congestion occurs and no data transmissions succeed this millisecond at all. If that happens, each tit_i decreases twice, i. e. each tit_i is replaced with ti2\lfloor \frac{t_i}{2} \rfloor .

Raj knows all the values nn , bb , sis_i , fif_i , and did_i , he wants to calculate the total number of bytes transmitted by all the users in the aggregate.

输入格式

The first line of the input contains two integers nn and bb ( 1n21051 \leq n \leq 2 \cdot 10^5 , 1b1091 \leq b \leq 10^9 ), the number of users who will use the line and the line bandwidth, respectively.

Each of the following nn lines contains three integers sis_i , fif_i and did_i ( 1sifi1091 \leq s_i \leq f_i \leq 10^9 , 1di1091 \leq d_i \leq 10^9 ), denoting that the ii -th user will try to transmit data during each millisecond between sis_i and fif_i inclusive, and the initial data rate of the ii -th user.

输出格式

Print one integer — the total number of bytes all users will successfully transmit.

输入输出样例

  • 输入#1

    1 3
    1 5 2

    输出#1

    10
  • 输入#2

    1 10
    7 11 1000

    输出#2

    0
  • 输入#3

    2 6
    1 12 1
    8 20 3

    输出#3

    64
  • 输入#4

    3 10
    1 100 1
    30 60 20
    40 80 6

    输出#4

    534

说明/提示

Consider the first example.

  • Millisecond 11 : User 11 transmits 22 bytes.
  • Millisecond 22 : User 11 transmits 33 bytes.
  • Millisecond 33 : Congestion occurs, and no user transmits data.
  • Millisecond 44 : User 11 transmits 22 bytes.
  • Millisecond 55 : User 11 transmits 33 bytes.

In the second example, at each millisecond from the 77 -th to the 1111 -th inclusive, congestion occurs, and the only user decreases their rate twice. However, they don't decrease the speed enough before disconnecting.

Consider the third example.

  • Millisecond 11 : User 11 transmits 11 bytes.
  • Millisecond 22 : User 11 transmits 22 bytes.
  • Millisecond 33 : User 11 transmits 33 bytes.
  • Millisecond 44 : User 11 transmits 44 bytes.
  • Millisecond 55 : User 11 transmits 55 bytes.
  • Millisecond 66 : User 11 transmits 66 bytes.
  • Millisecond 77 : Congestion occurs, and no user transmits data.
  • Millisecond 88 : User 11 transmits 33 bytes. User 22 transmits 33 bytes.
  • Millisecond 99 : Congestion occurs, and no user transmits data.
  • Millisecond 1010 : User 11 transmits 22 bytes. User 22 transmits 22 bytes.
  • Millisecond 1111 : User 11 transmits 33 bytes. User 22 transmits 33 bytes.
  • Millisecond 1212 : Congestion occurs, and no user transmits data.
  • Millisecond 1313 : User 22 transmits 22 bytes.
  • Millisecond 1414 : User 22 transmits 33 bytes.
  • Millisecond 1515 : User 22 transmits 44 bytes.
  • Millisecond 1616 : User 22 transmits 55 bytes.
  • Millisecond 1717 : User 22 transmits 66 bytes.
  • Millisecond 1818 : Congestion occurs, and no user transmits data.
  • Millisecond 1919 : User 22 transmits 33 bytes.
  • Millisecond 2020 : User 22 transmits 44 bytes.
首页