luogu#P6925. [ICPC2016 WF] Spin Doctor
[ICPC2016 WF] Spin Doctor
题目描述
As an employee of the world’s most respected political polling corporation, you must take complex, real-world issues and simplify them down to a few numbers. It isn’t always easy. A big election is coming up and, at the request of Candidate X, you have just finished polling people. You have gathered three pieces of information from each person, with the values for the person recorded as:
– the number of digits of they have memorized
– the number of hairs on their head
– whether they will vote for Candidate X
Unfortunately, you are beginning to wonder if these are really the most relevant questions to ask. In fact, you cannot see any correlation between , , and in the data. Of course, you cannot just contradict your customer – that is a good way to lose your job!
Perhaps the answer is to find some weighting formula to make the results look meaningful. You will pick two real values and , and sort the poll results by the measure . The sort will look best if the results having true are clustered as close to each other as possible. More precisely, if and are the indices of the first and last results with true, you want to minimize the cluster size which is . Note that some choices of and will result in ties among the triples. When this happens, you should assume the worst possible ordering occurs (that which maximizes the cluster size for this pair).
输入格式
The input starts with a line containing (), which is the number of people polled. This is followed by one line for each person polled. Each of those lines contains integers (), (), and , where is if the person will vote for Candidate X and otherwise. The input is guaranteed to contain at least one person who will vote for Candidate X.
输出格式
Display the smallest possible cluster size over all possible pairs.
题目大意
大选要到了,受候选人X的要求,你调查了 个人,并记录了每个人的 个信息:
- 他们能记忆 的多少位
- 他们的头发数量
- 他们是否会给候选人X投票
你需要找到某个公式使这些结果看起来有意义。你要选择 个实数 和 ,将所有调查结果按 排序。如果 为 true
的人聚集在了一起,你会觉得这个排序看起来不错。更准确地说,如果 和 分别是第一个和最后一个 为 true
的人的下标,你想要最小化 。注意有些 和 会让排序时出现相等的情况,这时你应该假设最坏情况发生,即排序使得 最大。
6
0 10 0
10 0 1
12 8 1
5 5 0
11 2 1
11 3 0
4
10
6 1 1
0 2 0
2 1 1
6 1 1
8 2 0
4 4 0
4 0 0
2 3 1
6 1 0
6 3 1
8
5
5 7 0
3 4 0
5 7 0
5 7 1
9 4 0
1
提示
Time limit: 5000 ms, Memory limit: 1048576 kB.
International Collegiate Programming Contest (ACM-ICPC) World Finals 2016