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;
}
'온라인저지' 카테고리의 다른 글
[BOJ] 1182번: 부분집합의 합 (0) | 2018.07.26 |
---|---|
[BOJ] 14650번: 걷다보니 신천역 삼 (Small) (0) | 2018.07.19 |
[BOJ] 14652번: 나는 행복합니다~ (0) | 2018.07.19 |
[BOJ] 14651번: 걷다보니 신천역 삼 (Large) (0) | 2018.07.19 |
[BOJ] 1193번: 분수찾기 (0) | 2018.07.19 |
[BOJ] 3053번: 택시 기하학 (0) | 2018.07.19 |
댓글