C Looooops

提交数: 46, 通过率: 13.04%, 平均分: 26.09

题目描述:

编译器的奥秘:我们被赋予了一种C语言的类型循环。

for (variable = A; variable != B; variable += C)
  statement;

即,一个循环,通过将变量设置为值A开始,当变量不等于B时,重复语句,然后将变量增加C.我们想知道语句对于A,B的特定值执行多少次 和C,假设所有算术以k位无符号整数类型(值0 <= x <2k)计算,模数为2k

输入格式:

输入由几个实例组成。 每个实例由单行描述,四行整数A,B,C,k由单个空格分隔。 整数k(1 <= k <= 32)是环路的控制变量的位数,A,B,C(0 <= A,B,C <2k)是循环的参数。

输入由包含四个零的行完成。

输出格式:

输出由与输入上的实例相对应的几行组成。 第i行包含第i个实例(单个整数)中的语句的执行次数,或者如果循环未终止,则为FOREVER。

样例输入:

3 3 2 16
3 7 2 16
7 3 2 16
3 4 2 16
0 0 0 0

样例输出:

0
2
32766
FOREVER

提示:

最多1000000个实例。

时间限制: 2000ms
空间限制: 256MB