编程题
### 问题描述 小明是一名资深的旅行家,他喜欢在旅途中思考数学问题。这一次,他来到了一座神秘的古城,发现城中有一道神奇的门,门后藏有一道特殊的数学难题。 门口的守卫告诉小明,门后面是一个长为 $n$ 的序列 $a$,以及一个常数 $k$。门后有 $m$ 个询问,每个询问都给出一个区间 $[l,r]$,要求将这个区间内的数分成尽可能少的连续段,且每个连续段中所有数的和都不大于 $k$。小明被这个问题吸引,决定尝试解决这个难题。 但是,小明发现这个问题非常困难,他需要你的帮助来解决它。如果某个询问无解,输出 `NO ANSWER`。 ### 输入格式 第一行包含三个整数 $n$($1\leq n \leq 10^4$),$m$($1\leq m \leq 10^5$)和 $k$($1 \leq k \leq 10^9$),分别表示序列长度、询问次数和限制值。 第二行包含 $n$ 个整数,表示序列 $a$ 的每个元素 $(1 \leq a_i \leq 10^9)$。 接下来 $m$ 行,每行包含两个整数 $l$ 和 $r$,表示询问区间 $[l,r]$ $(1 \leq l \leq r \leq n)$。 ### 输出格式 输出 $m$ 行,每行一个整数,表示对应询问区间内所有数最少可以分成的连续段数。如果某个询问无解,输出 `NO ANSWER`。 ### 样例输入 ```txt 8 3 5 1 2 3 2 1 4 5 2 1 4 2 6 5 8 ``` ### 样例输出 ```txt 2 3 3 ```
查看答案
赣ICP备20007335号-2