[BOJ 12923] 별 모으기
View as PDF
Submit solution
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text
Points:
3
Time limit:
2.0s
Memory limit:
512M
Problem type
Allowed languages
Alice는 최근에 나온 새로운 모바일 게임에 푹 빠져 있다. 이 게임은 총 N개의 스테이지로 구성되어 있고, 각 스테이지마다 2개씩의 별을 모을 수 있다. 그러나, 별을 모으는 것은 점점 어려워지기 때문에, 모은 별을 이용해 장비를 충분히 강화해야 어려운 스테이지들에 도전할 수 있다.</p>
보다 공식적으로 정리하자면, 별을 모으는 방법은 다음과 같다.
- 아직 하나의 별도 얻지 못한 스테이지 i를 ai개 이상의 별을 모은 상태에서 도전한다면, 해당 스테이지에서 1개의 별을 얻을 수 있다.
- 아직 하나의 별도 얻지 못한 스테이지 i를 bi개 이상의 별을 모은 상태에서 도전한다면, 해당 스테이지에서 2개의 별을 얻을 수 있다.
- 이미 1개의 별을 얻은 스테이지 i를 bi개 이상의 별을 모은 상태에서 도전한다면, 해당 스테이지에서 1개의 별을 얻을 수 있다.
Alice는 최소 횟수만 플레이해서 이 게임의 모든 별을 모으고 싶어한다. Alice가 그것을 성공할 수 있는지, 만약 성공할 수 있다면 몇 번이나 스테이지를 클리어해야 하는지 출력하시오.
입력 형식
첫 번째 줄에는 스테이지의 개수 N (1 ≤ N ≤ 1000)이 입력으로 주어진다.</p>
다음 N개의 줄에는 각 스테이지의 정보를 나타내는 두 자연수 ai와 bi가 주어진다. (0 ≤ ai ≤ bi ≤ 2001)
출력 형식
만약 Alice가 모든 스테이지를 클리어할 수 있다면, 스테이지를 클리어하는 총 횟수를 출력한다.</p>
모든 스테이지를 클리어하는 것이 불가능하다면, “Too Bad”를 출력한다.
예제 입력 1
2
0 1
0 2
예제 출력 1
3
예제 입력 2
3
2 2
0 0
4 4
예제 출력 2
3
예제 입력 3
1
1 1
예제 출력 3
Too Bad
힌트
- 예제 1에서는 스테이지 2 => 스테이지 1 => 스테이지 2 순서로 클리어하면 모든 별을 얻는다.
- 예제 2에서는 스테이지 2 => 스테이지 1 => 스테이지 3 순서로 클리어하면 모든 별을 얻는다.
- 예제 3에서는 스테이지 1에서 처음부터 한 개의 별도 얻을 수 없으므로, 불가능하다.
Comments