测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A7067. Hack,还是不 Hack,这是个问题

编程题 NOI/NOI+/CTSC
知识点

题目描述

考虑一场典型的 Codeforces 比赛,共有三道题,并采用动态计分。

你已经拿到一张“几乎最终”的积分榜信息:对每个参赛者(包括你自己),三道题的通过时间已知,并且对每份通过解答,你是否能攻击它也已知。比赛结束前唯一可能改变积分榜的行为,就是你发起的攻击。

问:你最终**可能得到的最好名次**是多少?

更严格地说,有 $n$ 名参赛者(你是第 $1$ 位)。对任意一道题,若最终恰好有 $k$ 人通过,则该题最高分 $s$ 定义为:

- 若 $n < 2k \le 2n$,则 $s=500$;
- 若 $n < 4k \le 2n$,则 $s=1000$;
- 若 $n < 8k \le 2n$,则 $s=1500$;
- 若 $n < 16k \le 2n$,则 $s=2000$;
- 若 $n < 32k \le 2n$,则 $s=2500$;
- 若 $32k \le n$,则 $s=3000$。

若某选手该题未通过(或其解答被攻击),则该题得 $0$ 分;否则若其在开赛后 $t$ 分钟通过,则其得分为
$score=\left\lfloor s\cdot\left(1-\frac{t}{250}\right)\right\rfloor
=\left\lfloor \frac{s\cdot(250-t)}{250}\right\rfloor$

选手总分为三题得分之和,再加上你每成功攻击一次获得的 $100$ 分(攻击只由你完成)。

最终你的名次等于严格分数高于你的人数加一。

输入格式

第一行包含一个整数 $n$($1 \le n \le 5000$),表示参赛者人数。你是第 $1$ 位参赛者。
接下来 $n$ 行,每行包含三个整数 $a_i,b_i,c_i$,表示第 $i$ 位参赛者三道题的结果:

- 若 $a_i=0$,表示未通过第一题;
- 若 $1 \le a_i \le 120$,表示在 $a_i$ 分钟通过第一题,且你无法攻击该解答;
- 若 $-120 \le a_i \le -1$,表示在 $-a_i$ 分钟通过第一题,且你可以攻击该解答。

$ b_i,c_i $ 同理。保证 $a_1,b_1,c_1$ 均为非负数。

输出格式

## 说明/提示

请参考第一个样例。如果你不攻击任何解答,你将赢得比赛(左边的积分榜);但如果你攻击第三位选手第一题的解答(你唯一能攻击的),则第一题的最高分变动,最终你排名第二(右侧的积分榜)。

![](/uploads/luogu/CF662E/5765f099578b08c48d176367f91619eb7bde0b71_b32575270bec.png)

输入输出样例

输入 #1
4
120 120 1
61 61 120
-61 61 120
0 0 0
输出 #1
1
输入 #2
4
0 0 119
-3 -17 -42
0 7 0
51 0 0
输出 #2
2
上一题 去做题 下一题