C 언어 반복문
시간 제한1초메모리 제한128 MB
k비트 부호 없는 정수에서 2^k로 나눈 나머지로 증가하는 카운터가 정지 값에 도달하는 반복 횟수를 구하고, 도달하지 못하면 FOREVER를 출력한다.
문제
다음과 같은 C 언어 스타일의 for 반복문이 주어진다.
for (variable = A; variable != B; variable += C)
statement;
이 반복문은 variable을 A로 초기화한 뒤, variable이 B와 같지 않은 동안 statement를 실행하고 variable에 C를 더하는 과정을 반복한다. 모든 연산은 비트 부호 없는 정수 자료형에서 을 법으로 하여(즉 범위에서 으로 나눈 나머지로) 계산된다.
주어진 , , , 에 대해 statement가 몇 번 실행되는지 구하여라. 반복문이 종료되지 않는다면 대신 FOREVER를 출력한다.
입력
입력은 여러 개의 인스턴스로 이루어진다. 각 인스턴스는 공백 하나로 구분된 네 정수 , , , 가 적힌 한 줄로 주어진다. ()는 반복 제어 변수의 비트 수이고, , , ()는 반복문의 매개변수이다.
입력의 마지막 줄에는 네 개의 0이 주어지며, 이 줄은 처리하지 않는다.
출력
각 인스턴스에 대해 한 줄씩 출력한다. 번째 줄에는 번째 인스턴스에서 statement가 실행되는 횟수(정수 하나)를 출력하고, 반복문이 종료되지 않으면 FOREVER를 출력한다.