小辰的智慧树
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

n 棵智慧树,第 i 棵智慧树的初始高度为 h_i,当前高度为 h_i'。小辰每次可以砍去某一棵智慧树的长度为 x\ (0\leq x) 的树干,小辰获得 x\times(h_i'+h_i'-x) 的智慧,而后,智慧树的当前高度  h_i'\leftarrow h_i'-x

现在陶陶不想让小辰太聪明,于是陶陶便限制第 i 棵智慧树高度不能低于 c_i

同时,由于小辰的屋子空间有限,不能装下长度之和超过 m 的树干。

求小辰最多能获得多少智慧。

输入描述:

第一行两个整数 n\ (1\leq n\leq 10^6),m\ (1\leq m\leq 10^{12}),表示智慧树的数量和小辰屋子的空间大小。

接下来 n 行,第 i 行两个整数 h_i,c_i\ (0\leq c_i\leq h_i\leq 10^6) 表示第 i 棵智慧树的初始高度和第 i 棵智慧树的最低高度。

输出描述:

一行一个整数表示小辰能获得的最大智慧。
示例1

输入

复制
3 6
10 5
9 2
8 1

输出

复制
98