#P6785. 「EZEC-3」排列

    ID: 7542 远端评测题 1000ms 128MiB 尝试: 0 已通过: 0 显示难度普及 上传者: 标签>模拟2020洛谷原创洛谷月赛

「EZEC-3」排列

题目描述

pigstd 有一堆数,他想在这么多数中选出若干个数排成一列,记为 x1,x2,⋯ ,xpx_{1},x_{2},\cdots,x_{p}(pp 为数的个数)。

这一列数合法当且仅当满足以下条件:

  • p≥2p \ge 2。
  • 令 yi=xi+1−xiy_{i} = x_{i + 1} - x_{i}(特别的,yp=x1−xpy_{p}=x_{1}-x_{p}),如果把 y1y_{1} 到 ypy_{p} 按 y1,y2,⋯ ,ypy_1,y_2,\cdots,y_p 的顺序排成一圈,那么每两个相邻的数互为相反数且绝对值都为 kk。

pigstd 想知道,在所有合法的数列中,所有在这个数列中的数之和最大是多少。

输入格式

第一行两个整数 n,kn,k。

接下来 nn 行,每行两个整数 ai,bia_{i},b_{i},表示 pigstd 有 bib_{i} 个 aia_{i}。

不保证 aia_{i} 互不相同,若有 aia_{i} 相同则累加其个数计算。

输出格式

一行一个整数,表示在每一种排列中,所有在这个排列中的数的最大的和。

若没有合法的排列,则只输出 NO\texttt{NO}。

4 3 
1 5
2 4
3 3
0 2
6

提示

【样例 1 说明】

当 pigstd 的排列为:0,3,0,30,3,0,3 或 3,0,3,03,0,3,0 时,总和最大,为 66。

【数据规模与约定】

对于 100%100\% 的数据,1≤n≤1061 \le n \le 10^6,0≤k,ai≤1060 \le k,a_{i} \le 10^6,1≤bi≤1061 \le b_{i} \le 10^6。

本题采用捆绑测试。

  • Subtask 1(5 points):保证无合法的数列;
  • Subtask 2(15 points):k=0k = 0;
  • Subtask 3(5 points):n=1n = 1;
  • Subtask 4(5 points):n=2n = 2;
  • Subtask 5(30 points):n,k,ai,bi≤103n,k,a_i,b_i \le 10^3;
  • Subtask 6(40 points):无特殊限制。