AT_joi2009yo_e.シャッフル

通过率:0%

AC君温馨提醒

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

题目描述

手上有编号从 11 到 nn 的 nn 张卡片。我们将这些卡片按编号顺序从上到下叠成一堆,顶部是编号为 11 的卡片,最底层是编号为 nn 的卡片。

现在,我们要对卡片堆进行一种称为“洗牌 (x,y)(x, y)”的操作,用来改变卡片的顺序,其中 1≤x<y<n1 \le x < y < n。

洗牌 (x,y)(x, y) 操作

首先,把 nn 张卡片分成三部分:从顶部开始的前 xx 张构成第一部分 A,第 x+1x+1 张到第 yy 张构成第二部分 B,第 y+1y+1 张到最底成为第三部分 C。然后按顺序将 B 移到 A 之上,再将 C 放到最上面。

例如,有 99 张按顺序排列的卡片,执行“洗牌 (3,5)(3, 5)”后,卡片从上到下的编号变为:6,7,8,9,4,5,1,2,36, 7, 8, 9, 4, 5, 1, 2, 3。

在最初的卡片堆上依次进行 mm 次洗牌操作,最终我们需要找到从顶部起第 pp 张到第 qq 张卡片中,编号不超过 rr 的卡片数量。

输入格式

第一行包含一个整数 nn,表示卡片总数(3≤n≤1093 \le n \le 10^9)。
第二行包含一个整数 mm,表示洗牌的次数(1≤m≤50001 \le m \le 5000)。
第三行包含三个整数 p,q,rp, q, r,分别指明所需关注的卡片范围以及编号的上限(1≤p≤q≤n1 \le p \le q \le n,1≤r≤n1 \le r \le n)。
接下来的 mm 行每行包含两个整数 xi,yix_i, y_i,表示第 ii 次洗牌的参数(1≤xi<yi<n1 \le x_i < y_i < n)。

输出格式

经过 mm 次洗牌后,输出指定范围内编号不超过 rr 的卡片数量。

样例解析 1

对于输入例 1,执行“洗牌 (3,5)(3, 5)”后,将得到卡片顺序为 6,7,8,9,4,5,1,2,36, 7, 8, 9, 4, 5, 1, 2, 3。从上数第 33 张到第 77 张卡片中,编号不超过 44 的卡片有两张,即编号 44 和编号 11。

样例解析 2

对于输入例 2,依次执行“洗牌 (3,8)(3, 8)”、“洗牌 (2,5)(2, 5)”、“洗牌 (6,10)(6, 10)”后,卡片顺序为 9,10,3,11,12,4,5,6,7,8,1,29, 10, 3, 11, 12, 4, 5, 6, 7, 8, 1, 2。从上数第 33 张到第 88 张卡片中,编号不超过 55 的卡片数量为 33。

本翻译由 AI 自动生成

输入输出样例

  • 输入#1

    9
    1
    3 7 4
    3 5

    输出#1

    2
  • 输入#2

    12
    3
    3 8 5
    3 8
    2 5
    6 10

    输出#2

    3

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

首页