一开始有 n 个没有水的容量无限大的水桶排成一列,编号从 1 到 n ,对这些水桶装水,有以下两种装水操作方式:
对编号区间 [a,b] 进行操作 1,具体会执行如下步骤:
对编号为 x 的水桶进行操作 2 ,具体会执行如下步骤:
设 k 代表现在是自程序执行以来第几次进行到这一步
让第 x 号水桶增加 k 升水
如果 x+2\le n ,对区间 [x+1,x+2] 进行操作1
如果 2x\le n ,对编号为 2x 的水桶继续进行操作 2
求最后每个水桶有多少升水。
输入
第一行输入两个整数 n,t(1\le n\le10^2,1\le t\le10)
接下来输入 t 行,每行首先输入一个整数 v(1\le v\le2) ,代表这是操作 v ,若 v=1 ,接下来在同一行输入 2 个整数 a,b ,否则在同一行输入 1 个整数 x,保证输入满足 1\le x,a,b\le n, a\le b
输出
每次操作结束后,在一行中输出每个水桶现在有多少滴水,每个水桶结果用空格隔开
样例
标准输入 复制文本 |
5 2 2 1 1 1 5 |
标准输出 复制文本 |
1 5 4 13 4 2 7 16 24 23 |