플로피 디스크
시간 제한1초메모리 제한128 MB
주어진 SHAR 파일 크기에 압축, uuencode, 30000줄 단위 분할, 재압축을 차례로 적용해 필요한 플로피 개수를 구한다.
문제
인터넷, 실시간 이메일, 상시 연결이 당연해진 시대에도 여전히 플로피 디스크로 작업하는 사람들이 있다. John도 그중 한 명이다. 그는 매일 저녁 집으로 돌아가 사무실에서 하던 작업을 개인 UNIX 시스템에서 이어서 한다. 그는 필요한 모든 파일을 다음 절차에 따라 플로피 디스크에 복사한다.
- 모든 파일을 하나의 큰 SHAR 파일로 묶는다.
- 그 파일을 압축한다.
- 압축된 파일을
uuencode하여, (줄바꿈 문자를 포함해) 각 줄이 62자인 깔끔한 줄들로 나눈다. - 그 결과를 각각 30,000줄(약 1.86MB)짜리 조각으로 나눈다.
- 각 조각을 다시 압축하여 하나의 플로피 디스크에 담는다.
지금까지 이 절차는 항상 잘 작동했다. 1.86MB의 uuencode된 텍스트를 압축하면 1.44MB 플로피 디스크에 알맞게 들어가기 때문이다.
압축을 하면 SHAR 파일의 크기가 절반이 되고, 압축된 파일을 uuencode하면 크기가 50% 늘어난다(각 결과는 가장 가까운 정수 바이트로 반올림한다). SHAR 파일의 크기가 주어졌을 때, John에게 필요한 플로피 디스크의 개수를 구하여라.
입력
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 SHAR 파일의 크기를 바이트 단위로 나타내는 정수 () 하나가 적힌 한 줄이다.
입력은 인 줄로 끝나며, 이 줄은 처리하지 않는다.
출력
각 테스트 케이스마다 먼저 케이스 번호를 File #1, File #2처럼 한 줄에 출력하고, 다음 줄에 필요한 플로피 디스크의 최소 개수를 John needs N floppies. 형식으로 출력한다(N은 그 최소 개수). 연속한 테스트 케이스 사이에는 빈 줄 하나를 넣는다.