CF768B Code For 1

题目描述

琼恩英勇奋战,营救了在硬家堡被异鬼袭击的野人。回到黑城堡后,山姆告诉他自己想去旧镇,在“学城”接受训练,成为一名学士,这样他就能回来接替已逝艾蒙的位置,成为黑城堡的学士。琼恩同意了山姆的请求,于是山姆踏上了前往学城的旅途。然而,想成为学城的学徒并非易事,因此学士们给了山姆一道难题,用来测试他的资格。 起初,山姆手上有一个只包含一个元素 $n$ 的列表。然后,他需要对该列表进行若干操作。在每次操作中,山姆必须从列表中移除任意满足 $x>1$ 的元素 $x$,并在原位置依次插入 $[\left\lfloor \frac{x}{2} \right\rfloor,\, x\bmod 2,\, \left\lfloor \frac{x}{2} \right\rfloor]$。他需要重复以上操作,直到列表中的所有元素都是 $0$ 或 $1$。 现在,学士们想知道最终列表中第 $l$ 到第 $r$ 位($1$-索引)中 $1$ 的总数。山姆想成为学士,但不幸的是他解不出这道题。你能帮助山姆通过资格测试吗?

输入格式

第一行包含三个整数 $n$、$l$、$r$($0 \leq n < 2^{50}$,$0 \leq r-l \leq 10^{5}$,$r \geq 1$,$l \geq 1$)——初始元素以及查询区间 $l$ 到 $r$。 保证 $r$ 不大于最终列表的长度。

输出格式

输出在最终序列的 $l$ 到 $r$ 区间中 $1$ 的总数。

说明/提示

考虑第一个样例: 最终序列为 $[0,1,1,1,1,0,1]$。 列表第 $2$ 到第 $5$ 位的元素为 $[1,1,1,1]$。$1$ 的个数为 $4$。 对于第二个样例: 最终序列为 $[1,1,1,0,1,0,1,0,0,0,1,0,1,0,1]$。 列表第 $3$ 到第 $10$ 位的元素为 $[1,1,1,0,1,0,1,0]$。$1$ 的个数为 $5$。 由 ChatGPT 5 翻译