[2019 SCPC 1차 예선]
1차원 수직선 위의 좌표 \(0\) 인 곳에서 시작하여 오른쪽으로 움직이면서 좌표 \(x (>0) \)인 목표점에 도달하려고 한다.
움직이는 방법은 오른쪽으로 1칸, 2칸, 3칸, 등등으로 1칸씩 늘어나는 거리를 점프하는 것이다.
중간에 아무 때나 멈추고 다시 1칸으로 점프 거리를 “리셋”할 수 있다.
\(f(x)\) 를 위와 같은 방법으로 좌표 \(x\) 인 목표점에 도달하는 최소 점프 횟수라고 하자.
예를 들어, \(x=14\) 라고 하면 \(0→1→3→6→10(리셋)→11→13(리셋)→14\) 와 같이 \(7\) 번 점프하는 것이 최소 점프 횟수로 \(x\) 에 도달하는 방법이다.
입력으로 음이아닌 정수 \(x , y\) 를 받아서 \(f(x)\) ,\(f(x+1)\) , \(…\) , \(f(y)\) 중 최대값을 계산하는 프로그램을 작성하라.
입력 파일에는 여러 테스트 케이스가 포함될 수 있다.
파일의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 \(T\) 가 주어지고,
이후 차례로 \(T\) 개의 테스트 케이스가 주어진다. ( \(1 ≤ T ≤ 40\) )
각 테스트 케이스의 첫 줄에는 두 정수 \(x\) , \(y\)가 주어진다. ( \(0<x≤y≤10^{11}\) )
각 테스트 케이스의 답을 순서대로 표준출력으로 출력하여야 하며,
각 테스트 케이스마다 첫 줄에는 “Case #C”를 출력하여야 한다. 이때 C는 테스트 케이스의 번호이다.
그 다음 줄에, \(f(x)\) , \(f(x+1)\) , \(…\) , \(f(y)\) 중 최대값을 출력한다.
입력 |
---|
2 11 16 23 28 |
출력 |
---|
Case #1 7 Case #2 10 |