본문 바로가기
온라인저지

[BOJ] 1011번: Fly me to the Alpha Centauri

by plzfday 2018. 7. 19.

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;
}

 

 

댓글