A90649.Snakes

普及+/提高

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

设想一个游戏,场地是由 1×1091 \times 10^9 这样的方格组成的长条,每个方格用从 1110910^9 的编号表示。

你要在这些方格中放置 nn 条蛇(编号为 11nn)。起初,每条蛇仅占据一个方格,且每个方格不能被多条蛇同时占用。在完成初始放置之后,游戏正式开始。

游戏会持续 qq 秒。在每一秒,有两种可能的事件:

  • sis_i 变长:如果蛇 sis_i 占据了方格区间 [l,r][l, r],它会向右扩展,变成占据区间 [l,r+1][l, r+1]
  • sis_i 缩短:如果蛇 sis_i 占据了方格区间 [l,r][l, r],它会向左收缩,变成占据区间 [l+1,r][l+1, r]

每秒钟只会发生其中一种事件。

如果任何时间点有蛇碰到了障碍物(其它蛇或方格带的边界),你将立刻输掉游戏。否则,你的得分则等于所有蛇所占领的最大方格编号。

你需要在不输掉游戏的情况下,最小化最终得分。

输入格式

第一行包含两个整数 nnqq,表示蛇的数量和事件的数量(1n201 \le n \le 201q21051 \le q \le 2 \cdot 10^5)。接下来的 qq 行每行描述一个事件。

ii 行包含:

  • " sis_i +",表示第 sis_i 条蛇扩展;
  • " sis_i -",表示第 sis_i 条蛇收缩。

给出的事件序列是有效的,即任何长度为 11 的蛇都不会收缩。

输出格式

输出一个整数,表示你可以取得的最低得分。

输入输出样例

  • 输入#1

    3 6
    1 +
    1 -
    3 +
    3 -
    2 +
    2 -

    输出#1

    4
  • 输入#2

    5 13
    5 +
    3 +
    5 -
    2 +
    4 +
    3 +
    5 +
    5 -
    2 +
    3 -
    3 +
    3 -
    2 +

    输出#2

    11

说明/提示

在第一个例子中,最优策略是将第二条蛇放在方格 11,第三条蛇放在方格 22,第一条蛇放在方格 33。最终,最大的被占用方格是方格 44,这是最低可能得分。

在第二个例子中,一种最优的放置策略是:

  • 把第 22 条蛇放在位置 11
  • 将第 33 条蛇放在位置 44
  • 将第 55 条蛇放在位置 66
  • 将第 11 条蛇放在位置 99
  • 将第 44 条蛇放在位置 1010
首页