#ZL11005. 区间里的余数侦探

    ID: ZL11005 传统题 2000ms 128MiB 尝试: 1 已通过: 1 普及− 上传者: 标签>M1M1第一学期M1-第10课四则运算与运算顺序乘除法的意义、常见巧算与整数除法算法相关算法-有限枚举作业题

区间里的余数侦探

区间里的余数侦探

题目描述

给定闭区间 [left,right][left,right]、正整数除数 divisordivisor 和合法余数 remainderremainder。请在区间中寻找所有满足 n=divisor×q+remaindern=divisor×q+remainder 的整数 nn,其中 qq 是整数,可以为负数、00 或正数。

本题使用余数非负的整数除法,余数满足 0≤remainder<divisor0≤remainder<divisor。区间可以包含负数,例如 −11=7×(−2)+3-11=7×(-2)+3,因此 −11-11 除以 77 的余数为 33。C++ 的 % 运算对负数可能产生负结果,不能不加处理地将其作为本题的余数。

输入格式

输入一行,包含四个整数 leftleft、rightright、divisordivisor 和 remainderremainder,其中 left≤rightleft≤right,divisor>0divisor>0,0≤remainder<divisor0≤remainder<divisor。

leftleft 和 rightright 都可以为负数、00 或正数。

输出格式

如果存在解,输出一行三个整数:解的数量、最小解和最大解;如果不存在解,输出一行 NONE。

样例

输入

20 50 7 3

输出

4 24 45