YZOJ P2905 [PA2014]Druzyny
时间限制:1000MS 内存限制:131072KB
难度:\(8.0\)
-
题目描述
在之前的某次校内训练中,zzx
出了一道神奇的题目:给出 \(n\) 个人,要求将所有人分成若干个组,第 \(i\) 个人所在的组的人数必须在 \([l_i, r_i]\) 之间,判断是否存在可行解。
OI
组的神犇们决定把这题改造一下:
dick32165401
:改成只有编号连续的的一段才可以分一组。
runzhe2000
:判定可行解可能会被爆搜水过,最大化分的组数就不那么容易水过了。
E.Space
:不仅要最大化组数,还要求出最大化组数的方案数。
ct
:数据范围就出100万好了。
于是这题就被这么造好了。
-
输入格式
第一行 \(n\),\(1 \leq n \leq 1000000\) 。
接下来 \(n\) 行,每行 \(l_i,r_i\),\(1 \leq l_i \leq r_i \leq 1000000\) 。
-
输出格式
若不存在合法的方案,仅输出一行 \(-1\) 。
否则输出一行两个整数,分别表示组数的最大值和组数取最大值的方案数模 \(10^9+7\) 。
-
样例输入
1 2 3 4 5 6 7 8 9 10 |
9 1 4 2 5 3 4 1 5 1 1 2 5 3 5 1 3 1 1 |
-
样例输出
1 |
5 2 |
Source: BZOJ 3711
膜拜上方所有dalao %%%%%%%%%%%%%%%%%%