AT_agc047_f.[AGC047F] Rooks

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给你一个无限大的棋盘和 NN 个敌方车的位置 (Xi,Yi)(X_i, Y_i)。每辆车的攻击范围为这辆车所在的一行与这辆车所在的一列,这些车互不攻击(每行每列最多只有一辆车)。

你要把其中一辆车换成国王,然后让国王不断移动,尽可能多地吃掉其他车。

国王可以向前、向后、向左、向右移动,但是不能走进会被车攻击的格子。另外,如果有一辆车在国王的斜对角方向,国王可以斜着移动并吃掉车,但是 不能斜着走到空格。

换句话说,这个国王就像个超级兵,能斜着四个方向吃子,横竖四个方向走动。

对每辆车,假设把它换成国王,求吃掉最多车的情况下,最少需要多少步。

输入格式

输入以如下格式从标准输入给出。

NN
X1X_1 Y1Y_1
X2X_2 Y2Y_2
⋮\vdots
XNX_N YNY_N

输出格式

输出 NN 行。第 ii 行对应将 (Xi, Yi)(X_i,\ Y_i) 处的车替换为国王的情况。该行输出一个整数,即吃掉 MiM_i 个车所需的最小步数。这里 MiM_i 表示在这种情况下能够吃掉的最大车数(步数不限)。

输入输出样例

  • 输入#1

    6
    1 8
    6 10
    2 7
    4 4
    9 3
    5 1

    输出#1

    5
    0
    7
    5
    0
    0
  • 输入#2

    5
    5 5
    100 100
    70 20
    81 70
    800 1

    输出#2

    985
    985
    1065
    1034
    0
  • 输入#3

    10
    2 5
    4 4
    13 12
    12 13
    14 17
    17 19
    22 22
    16 18
    19 27
    25 26

    输出#3

    2
    2
    9
    9
    3
    3
    24
    5
    0
    25

说明/提示

限制条件

  • 2≤N≤200 0002\leq N\leq 200\,000
  • 1≤Xi, Yi≤1061\leq X_i,\ Y_i\leq 10^6
  • Xi≠XjX_i\neq X_j
  • Yi≠YjY_i\neq Y_j
  • 输入中的所有值均为整数。

样例说明 1

请参见下图。当将第 33 个车替换为国王时,最多可以吃掉另外两个车。图中的红色路径是一种最优方案——先吃掉第 11 个车,然后不断向右下方移动,吃掉第 44 个车。此时所需步数为 77,这就是输出样例第三个数字。

xx 轴正方向为右,yy 轴正方向为上
如果将第 2,5,62,5,6 个车替换为国王,则无法吃掉任何其他车,此时最小步数为 00。

输入解题思路,AI测评打分。不知道怎么写?

首页