atcoder#AGC034C. [AGC034C] Tests

[AGC034C] Tests

题目描述

高橋くんと青木くんは 1 1 から N N までの番号がついたテストを受けようとしています。 二人はこのテストの結果を使って勝負することにしました。 具体的には、次のようにして勝敗を決めます。

  • 高橋くんが各テスト i i について、その重要度 ci c_i を決める。ただしこの値は li l_i 以上 ui u_i 以下の整数である必要がある。
  • i=1N ci × \sum_{i=1}^{N}\ c_i\ \times (高橋くんのテスト i i の点数) を A A ,   \ i=1N ci × \sum_{i=1}^{N}\ c_i\ \times (青木くんのテスト i i の点数) を B B とする。 A  B A\ \geq\ B なら高橋くんの勝ち、A < B A\ <\ B なら青木くんの勝ち。

高橋くんはエスパーなので、青木くんがテスト i i bi b_i 点をとることがわかっています。

高橋くんはこのままだとすべてのテストで 0 0 点をとってしまいますが、 1 1 時間勉強するごとに、好きなテストの点数を 1 1 だけ上げることができます。(1 1 時間単位でしか勉強できません。) ただしテストはすべて X X 点満点なので、 X X より大きい点数にすることはできません。

高橋くんが勝つために必要な最小の勉強時間を出力してください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N X X b1 b_1 l1 l_1 u1 u_1 b2 b_2 l2 l_2 u2 u_2 : : bN b_N lN l_N uN u_N

输出格式

高橋くんが勝つために必要な最小の勉強時間を出力せよ。

题目大意

给定非负整数序列 {ln},{rn},{bn},X\{l_n\},\{r_n\},\{b_n\},X,求最小的 ss,使得存在非负整数序列 {an},{cn}\{a_n\},\{c_n\},满足 aiXa_i\le Xi=1nai=s\sum_{i=1}^na_i=sci[li,ri]c_i\in[l_i,r_i],且

i=1nci(aibi)0\sum_{i=1}^nc_i(a_i-b_i)\ge0

所有输入均 105\le10^5

2 100
85 2 3
60 1 1
115
2 100
85 2 3
60 10 10
77
1 100000
31415 2718 2818
31415
10 1000
451 4593 6263
324 310 6991
378 1431 7068
71 1757 9218
204 3676 4328
840 6221 9080
684 1545 8511
709 5467 8674
862 6504 9835
283 4965 9980
2540

提示

制約

  • 1  N  105 1\ ≦\ N\ ≦\ 10^5
  • 1  X  105 1\ ≦\ X\ ≦\ 10^5
  • 0  bi  X 0\ ≦\ b_i\ ≦\ X (1  i  N) (1\ \leq\ i\ \leq\ N)
  • 1  li  ui  105 1\ ≦\ l_i\ ≦\ u_i\ ≦\ 10^5 (1  i  N) (1\ \leq\ i\ \leq\ N)
  • 入力はすべて整数

Sample Explanation 1

例えば次のようにするのが最適です。 - c1 = 3, c2 = 1 c_1\ =\ 3,\ c_2\ =\ 1 とする。 - テスト 1 1 100 100 点、テスト 2 2 15 15 点とるように勉強する。 このとき A = 3 × 100 + 1 × 15 = 315 A\ =\ 3\ \times\ 100\ +\ 1\ \times\ 15\ =\ 315 , B = 3 × 85 + 1 × 60 = 315 B\ =\ 3\ \times\ 85\ +\ 1\ \times\ 60\ =\ 315 なので高橋くんが勝ちます。