#P5291. [2021泉州五一集训试题]day3第一题 面包

[2021泉州五一集训试题]day3第一题 面包

Description

最近新冠病毒肆虐,Nayiz为了减少出门次数,一下子屯了很多天的面包。

具体来说,Nayiz —共买了 n块面包,第i块面包的体积是vi,质量是wi。当然Nayiz买面包不仅仅是 给自己吃的,他还要分一半给他的女朋友Niyiz。为了体现Nayiz的正直,Nayiz会恰好将这块n面包分成 两堆,使得两堆面包的体积和质量都一样,然后其中一堆归他,另一堆归Niyiz。但是Nayiz清楚这n块面包 不一定能恰好分成两堆,所以他打算对至多两块面包进行分割操作来完成目的。

一次分割操作是这样子的:选择一块面包i,再选择一个比例P (0 =< p <= 1),然后将面包i切成两块,其 中一块面包的体积和质量是Vip和Wip,另一块面包的体积和质量是Vi* (1 -p)和Wi*(1 -p),随后这两个面包的标号分别变成i和n+1,最后再将n自增一。

Nayiz能完成目标吗?

Input Format

第一行一个正整数n,表明面包个数。

接下去n行,第i行每行两个正整数Vi,wi ,描述第i块面包的体积和质量。

Output Format

如果不存在这样的分类方式,则输出一行一个字符串”NO”(不包括双引号)。

否则,第一行输出一个正整数C (0 =< C <= 2),表明切割次数。

接下来C行,每行一个正整数i 一个实数p (0= < p <= 1),描述依次切割操作。

接下来一行一个正整数L,表明分给Nayiz的面包的数目。

接下来一行L个正整数,每个数表示一个分给Nayiz的面包标号,数字之间用空格隔开。

Sample

样例输人

4
13
7 2
10 3
44

样例输出

0
2
1 3

Hint

对于30%的数据:n <= 16。

另有20%的数据:对所有的面包有Vi = Wi。

对于 100% 的数据:1 =< n < =10^5,1 =< Vi,Wi <= 10^6。

若你得到两个集合的体积差和质量差的绝对误差或者相对都不超过10-9,则你的方案就被认为正确。