SP9063 SHUFFLEK - Shuffling cards

题目描述

有一副 $2N$ 张牌,每张牌的数字分别是 $1, 2, \ldots, 2N$,一开始,所有牌按照从上到下的顺序依次为递增排列。这些牌会经过洗牌机,根据 $M$ 个指令进行洗牌,指令通过 $M$ 个整数 $k_1, k_2, \ldots, k_M$ 来指定。每个整数 $k_i$($1 \le |k_i| < N$)代表了一条洗牌操作: - 如果 $k_i > 0$:从牌堆中间取出 $2k_i$ 张牌,放到牌堆的顶部。 - 如果 $k_i < 0$:从牌堆中间取出 $-2k_i$ 张牌,插入到牌堆的底部。 经过这些指令洗牌后,X 先生得到了这副牌。他希望能通过丢弃一些牌,使得剩下的牌从上到下按照数值递增排列。你的任务是编写一个程序帮助 X 先生计算出最少需要丢弃的牌数。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/SP9063/08382ded98e14a989c19b89063b66583c97cead7.png)

输入格式

第一行是两个正整数 $N$ 和 $M$,表示牌的数量为 $2N$,指令的数量为 $M$。其中 $2 \le N \le 10^5$,$1 \le M \le 10^5$。第二行是 $M$ 个整数 $k_1, k_2, \ldots, k_M$,其中 $1 \le |k_i| < N$。

输出格式

输出一个整数,表示需要移除的最少牌数。 ## 样例输入 ``` 3 2 -2 1 ``` ## 样例输出 ``` 2 ``` **本翻译由 AI 自动生成**