알리바바
시간 제한1초메모리 제한128 MB
직선상의 여러 지점과 각 지점의 마감 시간이 주어질 때, 시작 위치를 자유롭게 골라 모든 지점을 마감 전에 방문하는 최소 완료 시간을 구하거나 불가능함을 판정합니다.
문제
우리 어린 시절 이야기에 나오는 유명한 인물 알리바바는, 아이들에게 계속 행복을 주기 위해 불멸의 존재가 되고 싶어 한다. 그 자격을 얻으려면, 그는 여전히 특별한 일들을 해낼 수 있음을 증명해야 한다. 곧게 뻗은 길을 따라 서로 다른 위치에 개의 보물()이 놓여 있다. 각 보물에는 제한 시간이 있어, 그 시간이 지나면 사라진다. 알리바바는 개의 보물을 모두, 그리고 빠르게 손에 넣어야 하므로, 가장 유리한 위치에서 출발하여 각 보물이 사라지기 전에 어떤 순서로 집어야 할지를 알아내야 한다.
알리바바는 모든 보물의 위치와 제한 시간을 알고 있다. 위치 는 길의 가장 왼쪽 끝으로부터 거리 에 있으며, 알리바바는 단위 속력으로 길을 따라 움직이므로 거리 를 이동하는 데 시간 가 걸린다. 보물을 집는 데 걸리는 시간은 0이다. 시각 에 자신이 고른 위치에서 출발할 때, 알리바바는 모든 보물을 (각각 그 제한 시간 이내에) 집을 수 있는 가장 이른 시각, 즉 마지막 보물을 집는 시각을 최소로 하고 싶어 한다.
입력
입력은 여러 개의 데이터 집합으로 이루어지며, 각 집합은 하나의 보물 모음을 나타낸다. 각 데이터 집합은 보물의 개수 으로 시작하고, 이어서 위치 제한시간 쌍이 위치의 오름차순으로 개 주어진다. 수들 사이에는 공백 문자가 자유롭게 나타날 수 있다. 위치와 제한 시간은 음이 아닌 정수이며, 입력은 항상 올바르다. 입력은 파일의 끝(EOF)에서 종료된다.
출력
각 데이터 집합에 대해, 알리바바가 모든 보물이 사라지기 전에 집을 수 있는 가장 이른 시각을 한 줄에 출력한다. 그것이 불가능하면 대신 No solution을 출력한다.