온라인저지
[BOJ] 1011번: Fly me to the Alpha Centauri
plzfday
2018. 7. 19. 00:17
1011번: Fly me to the Alpha Centauri
이동 횟수와 거리 간의 관계가 있다.
이동 횟수 | 거리 표시 | 이동 가능 거리 |
---|---|---|
1 | 1 | 1 |
2 | 1 1 | 2 |
3 | 1 2 1 | 3 - 4 |
4 | 1 2 2 1 | 5 - 6 |
5 | 1 2 3 2 1 | 7 - 9 |
6 | 1 2 3 3 2 1 | 10 - 12 |
예를 들어 우리가 5만큼의 거리를 간다고 하자. 그렇다면 우리는 4번만 이동하면 된다. 규칙을 잘 찾아서 구현을 해주면 완성이다.
코드
#include <cstdio>
int t;
int main()
{
scanf("%d", &t);
while (t--)
{
int d, a; // departure, arrival;
scanf("%d %d", &d, &a);
for (int i = 1;; ++i)
if (a - d <= (long long)((i + 1) / 2) * (i / 2 + 1))
{
printf("%d\n", i);
break;
}
}
return 0;
}