100 atcoder#ABC116D. [ABC116D] Various Sushi

[ABC116D] Various Sushi

题目描述

N N 個の寿司があり、それぞれの寿司には「ネタ」ti t_i と「おいしさ」di d_i のパラメータが設定されています。 あなたはこの N N 個の寿司の中から K K 個を選んで食べようとしています。 この時のあなたの「満足ポイント」は、以下のようにして計算されます。

  • 「満足ポイント」は、「おいしさ基礎ポイント」と、「種類ボーナスポイント」の和である。
  • 「おいしさ基礎ポイント」は、食べた寿司の「おいしさ」の総和である。
  • 「種類ボーナスポイント」は、食べた寿司の「ネタ」の種類数を x x としたとき、xx x*x である。

あなたは、「満足ポイント」をできるだけ大きくしたいです。 この時の「満足ポイント」の値を求めてください。

输入格式

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

N N K K t1 t_1 d1 d_1 t2 t_2 d2 d_2 . . . . . . tN t_N dN d_N

输出格式

あなたの得られる「満足ポイント」の最大値を出力してください。

题目大意

题目描述

现有 NN 个寿司。每个寿司有两个参数:“寿司种类” tit_i 和 “美味程度” did_i。您现在需要在这 NN 个寿司中选择吃 KK 个。您的 “满足感” 会被按照如下标准计算:

  • 满足感是 “基础美味程度总和” 和 “多样性加成” 数值的总和。

  • “基础美味程度总和” 指的是你吃的所有寿司的美味程度的总和。

  • “多样性加成” 是 x×xx \times x,其中 xx 是你吃的寿司种类 (即一共有多少种 tt)。

您现在想要得到最大的 “满足感”。找到这个 “满足感” 的最大值。

输入格式

输入格式如下:

第一行为两个整数 NNKK

接下来从第 22 行到第 N+1N + 1 行,第 ii 行两个整数 tit_idid_i,分别代表第 ii 种寿司的寿司种类和美味程度。

输出格式

输出您可以得到的 “满足感” 的最大值。

说明/提示

数据范围约定:

  • 1KN1051 \leq K \leq N \leq 10 ^ 5

  • 1tiN1 \leq t_i \leq N

  • 1di1091 \leq d_i \leq 10 ^ 9

  • 所有输入数据均为整数

样例解释 1

吃第 1,2,31,2,3 个寿司时,“基础美味程度总和” 为 9+7+6=229 + 7 + 6 = 22,“多样性加成” 为 2×2=42 \times 2 = 4 ,得到 “满足感” 最大值为 2626 ,可以验证不存在更好的吃法。

样例解释 2

吃第 1,2,3,41,2,3,4 个寿司,可以验证不存在更好的吃法。

样例解释 3

注意数据可能会爆 intint

样例解释 4、5、6

同上

5 3
1 9
1 7
2 6
2 5
3 1
26
7 4
1 1
2 1
3 1
4 6
4 5
4 5
4 5
25
6 5
5 1000000000
2 990000000
3 980000000
6 970000000
6 960000000
4 950000000
4900000016

提示

制約

  • 1  K  N  105 1\ \leqq\ K\ \leqq\ N\ \leqq\ 10^5
  • 1  ti  N 1\ \leqq\ t_i\ \leqq\ N
  • 1  di  109 1\ \leqq\ d_i\ \leqq\ 10^9
  • 入力はすべて整数である。

Sample Explanation 1

寿司 1,2,3 1,2,3 を食べた時、 - 「おいしさ基礎ポイント」は、9+7+6=22 9+7+6=22 - 「種類ボーナスポイント」は、22=4 2*2=4 で、得られる「満足ポイント」は 26 26 となり、これが最適です。

Sample Explanation 2

寿司 1,2,3,4 1,2,3,4 を食べるのが最適です。

Sample Explanation 3

出力が 32 32 bit型整数に収まらない場合もあることに注意して下さい。