A7234 | 促销活动
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
在一个大型超市里,今天正进行着一个促销活动。每个商品都有不同的价格,而该超市设置了一些规则,鼓励顾客购买一系列连续的商品。活动的目的是找到一系列价格连续的商品,并且价格总和为某个目标值 $M$,顾客购买这些商品时,超市会提供折扣。
例如,顾客购买的商品价格分别为 $1998, 1999, 2000, 2001, 2002$,它们的总和为 $10000$,因此这组商品就符合活动要求,顾客会获得优惠。
超市的工作人员需要帮助顾客找出所有符合条件的连续商品段,确保每一段至少包含两个商品,并且价格总和恰好为给定的目标金额 $M$。
例如,顾客购买的商品价格分别为 $1998, 1999, 2000, 2001, 2002$,它们的总和为 $10000$,因此这组商品就符合活动要求,顾客会获得优惠。
超市的工作人员需要帮助顾客找出所有符合条件的连续商品段,确保每一段至少包含两个商品,并且价格总和恰好为给定的目标金额 $M$。
输入格式
给出一个正整数 $M$,表示顾客希望购买的商品价格总和。
输出格式
输出多个符合条件的连续商品段,每一行包含两个整数,表示该段商品的第一个和最后一个商品的价格,两个数之间用空格隔开。
输出的行按从小到大的升序排列。
输出的行按从小到大的升序排列。
输入输出样例
输入 #1
10000
输出 #1
18 142 297 328 388 412 1998 2002
### 样例解释:
第一个符合条件的商品段从 $18$ 到 $142$,它们的价格总和为 $10000$。
第二个商品段从 $297$ 到 $328$,其价格总和也是 $10000$,依此类推。
每行两个正整数,给出一个满足条件的连续价格的商品段,输出其中的第一个数和最后一个数,两数之间用一个空格隔开,所有输出行的第一个按从小到大的升序排列,对于给定的输入数据,保证至少有一个解。
### 数据范围:
$10 \le M \le 2 \times 10^{6}$
第一个符合条件的商品段从 $18$ 到 $142$,它们的价格总和为 $10000$。
第二个商品段从 $297$ 到 $328$,其价格总和也是 $10000$,依此类推。
每行两个正整数,给出一个满足条件的连续价格的商品段,输出其中的第一个数和最后一个数,两数之间用一个空格隔开,所有输出行的第一个按从小到大的升序排列,对于给定的输入数据,保证至少有一个解。
### 数据范围:
$10 \le M \le 2 \times 10^{6}$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?