一个长度为n的数组A1,A2,...,An,其中Ai=i。q次操作,每次选择区间[l,r]将下标从l r的数全部取出,
按原顺序放置到数列末尾,数组变成
$A_1,A_2,...,A_{l-1},A_{l+1},A_{r+2},...,A_n,A_l,A_{i+1},...,A_r$
例如,[1,2,3,4,5,6]第1次选择操作[2,4],变化后数列变为[1,5,6,2,3,4],第2次选择操作[3,5],数列变为[1,5,4,6,2,3]。请输出q次操作过程中,数字i出现过的下标位置的个数。
第一行包含两个整数n q (1≤n,q≤3×103),表示数列的长度和操作次数。
接下来q行,每行包含两个整数l,r(1≤l≤r≤n),表示q次操作。
输出一行包含n个整数,第i个数表示数字i出现过的下标位置的个数。
注意:python请选择编译器pypy3提交,否则可能运行超时!!!
输入
6 2
1 3
2 4
输出
3 2 2 2 3 3
说明
[1,2,3,4,5,6],第1次选择操作[1,3],变化后数列变为[4,5,6,1,2,3],第2次选择操作[2,4],数列变为 [4.2,3,5,6,1]。 数字1操作过程中出现的下标分别为[1,4,6],共3个。 数字2操作过程中出现的下标分别[2,5,2],共2个。 数字3操作过程中出现的下标分别[3,6,3],共2个。 数字4操作过程中出现的下标分别[4,1,1],共2个。 数字5操作过程中出现的下标分别[5,2,4],共3个。 数字6操作过程中出现的下标分别[6,3,5],共3个。
输入
20 6
1 5
8 12
6 18
3 9
5 5
13 20
输出
6 6 6 6 6 2 2 4 4 4 5 5 6 6 6 5 5 5 5 5
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.