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

NOI/NOI+/CTSC

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

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

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

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

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

  • n<2k2nn < 2k \le 2n,则 s=500s=500
  • n<4k2nn < 4k \le 2n,则 s=1000s=1000
  • n<8k2nn < 8k \le 2n,则 s=1500s=1500
  • n<16k2nn < 16k \le 2n,则 s=2000s=2000
  • n<32k2nn < 32k \le 2n,则 s=2500s=2500
  • 32kn32k \le n,则 s=3000s=3000

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

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

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

输入格式

第一行包含一个整数 nn1n50001 \le n \le 5000),表示参赛者人数。你是第 11 位参赛者。
接下来 nn 行,每行包含三个整数 ai,bi,cia_i,b_i,c_i,表示第 ii 位参赛者三道题的结果:

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

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

输出格式

说明/提示

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

输入输出样例

  • 输入#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
首页