천상낙원

Brick Wall Patterns

ACM 퀴즈
원문 : http://acm.uva.es/p/v9/900.html

높이가 폭의 2배인 벽돌을 이용해서 담을 쌓고자 한다. 담의 높이는 벽돌의 높이와 동일하고, 길이는 원하는 길이로 해서 담을 쌓는다.  다음 그림을  보면..
사용자 삽입 이미지
- 담의 길이를 기본 1 (벽돌 한개의 폭)으로 하는 방법: 벽돌 하나를 세워두는 한가지 패턴
- 담의 길이를 2으로 하는 방법: 벽돌 두개를 세워두는 방법과 눞혀두는 두가지 패턴
- 담의 길이를 3으로 하는 방법은 3가지 패턴이 있다.

문제
담의 길이가 주어졌을 때, 몇개의 패턴으로 담을 쌓을 수 있는지를 구하라.입력한 줄에 한개씩 담의 길이를 의미하는 양의 수가 입력된다. 담의 길이는 퇴대 50이며 0을 입력하면 입력이 종료된다.

입력 예시
1
2
3
0

출력 예시
1
2
3

'ACM 퀴즈' 카테고리의 다른 글

Bee  (1) 2007.03.24
Airline Hub  (0) 2007.03.24
ACM/ICPC 2004 서울대회 출제 문제  (0) 2006.09.16

Bee

ACM 퀴즈

원문 : http://acm.uva.es/p/v110/11000.html

아프리카에 매우 특이한 종류의 벌이 있다. 매년마다, 암컷 벌은 같은 종의 수컷 벌을 한 마리 출산한다. 반면에 수컷 벌은 한 마리의 수컷 벌과 암컷 벌을 출산한다. 출산 후, 벌은 죽는다

과학자들은 새로운 마법 암컷 벌을 발견했다. 그 마법 암컷 벌은 죽지 않지만, 암컷 벌을 한 마리씩 출산한다. 과학자들은 N년 후에 몇 마리의 벌이 있을지 알고자 한다. N년 후에 수컷 벌의 총 수를 알 수 있는 프로그램을 작성하라.

입력
N (>=0). N=-1인 경우에 입력이 종료된다.

출력
N년이 지난 후, 수컷 벌의 수와 벌의 총 수를 출력하라. (두수는 2^32를 넘지 않는다.)

입력 예
1
3
-1

출력 예
1 2
4 7

참고사항
0년 후, 마법 암컷 벌 = 1
1년 후, 마법 암컷 벌 + 수컷 벌 = 2
2년 후, 마법 암컷 벌 + 수컷 벌 + (수컷 벌 + 암컷 벌) = 마 1 + 수 2 + 암 1 = 4
3년 후, 마법 암컷 벌 + 수컷 벌 + 2 * (수컷 벌 + 암컷 벌) + 수컷 벌 = 마 1 + 수 4 + 암 2 = 7
4년 후, 마법 암컷 벌 + 수컷 벌 + 4 * (수컷 벌 + 암컷 벌) + 2 * 수컷 벌 = 마 1 + 수 7 + 암 4 = 12
5년 후, 마법 암컷 벌 + 수컷 벌 + 7 * (수컷 벌 + 암컷 벌) + 4 * 수컷 벌 = 마 1 + 수 12 + 암 7 = 20
....

'ACM 퀴즈' 카테고리의 다른 글

Brick Wall Patterns  (1) 2008.01.28
Airline Hub  (0) 2007.03.24
ACM/ICPC 2004 서울대회 출제 문제  (0) 2006.09.16

Airline Hub

ACM 퀴즈
원문 : http://acm.uva.es/p/v103/10316.html

World Wide Flyer (WWF)는 세계의 여러 공항에 착륙 권한을 가지고 있다. 그들은 세계의 어떠한 다른 공항과의 허브간의 직접 비행거리들의 최대값이 최소가 되는 중앙 허브를 설치하고자 한다.

입력
입력 파일은 여러 입력 세트로 되어있다. 각 세트는 첫 줄은 입력될 공항의 개수(n <= 1000)를 포함한다. 그 뒤에 공항의 경도(-90~+90), 위도(-180~+180)가 n개 입력된다. 입력값의 소수점은 두자리를 넘지 않는다. 입력은 파일의 끝으로 종료된다.

출력
각 입력 세트에 해당하는 중앙 허브의 위치를 한 줄에 출력한다. 2개 이상 존재할 경우에는 나중에 입력된 값을 출력한다. 위치는 소수점 둘째자리까지 출력한다.

입력 예
3
3.2 -15.0
20.1 -175
-30.2 10
3
3.2 -15.0
20.1 -175
-30.2 10

출력 예
3.20 -15.00
3.20 -15.00


'ACM 퀴즈' 카테고리의 다른 글

Bee  (1) 2007.03.24
ACM/ICPC 2004 서울대회 출제 문제  (0) 2006.09.16
ACM/ICPC 2005 서울대회 출제 문제  (0) 2006.09.14

ACM/ICPC 2004 서울대회 출제 문제

ACM 퀴즈

'ACM 퀴즈' 카테고리의 다른 글

Airline Hub  (0) 2007.03.24
ACM/ICPC 2005 서울대회 출제 문제  (0) 2006.09.14
개와 땅다람쥐 (Dog and Gopher)  (0) 2006.04.14

ACM/ICPC 2005 서울대회 출제 문제

ACM 퀴즈

'ACM 퀴즈' 카테고리의 다른 글

ACM/ICPC 2004 서울대회 출제 문제  (0) 2006.09.16
개와 땅다람쥐 (Dog and Gopher)  (0) 2006.04.14
체스판 위의 개미 (Ant on a Chessboard)  (0) 2006.03.26

개와 땅다람쥐 (Dog and Gopher)

ACM 퀴즈
넓은 마당에 개와 땅다람쥐가 있다. 개는 땅다람쥐를 잡아먹으려고 하고, 땅다람쥐는 땅 속에 있는 여러 개의 땅다람쥐 구멍을 통해서 안전하게 도망가려고 한다.

개와 땅다람쥐는 둘 다 수학 전공은 아니지만 그리 멍청하지도 않다. 땅다람쥐는 구멍 한 개를 정한 다음 그 구멍을 향해 일정한 속도로 직선으로 뛰어간다. 개는 보디 랭귀지를 파악하는데 매우 능숙해서 그 땅다람쥐가 어느 구멍으로 들어가기로 했는지 정확하게 파악할 수 있다. 개는 땅다람쥐의 두배의 속도로 같은 구멍으로 들어가기로 했는지 정확하게 파악할 수 있다. 개는 땅다람쥐의 두배의 속도로 같은 구멍을 향해 뛰어간다. 땅다람쥐는 개가 구멍에 먼저 도착하면 잡혀 먹히고, 그렇지 않으면 도망칠 수 있다.

땅다람쥐로부터, 어떤 구멍으로 숨어야 할지 결정하는데 도움을 줄만한 프로그램을 만들어 달라는 요청을 받았다.

입력
한 입력 파일에 여러 개의 테스트 케이스가 입력될 수 있다. 각 테스트 케이스의 첫째 줄에는 정수 한 개와 부동소수점수 네 개가 입력된다. 정수 n은 구멍의 개수를 나타낸다. 네 개의 부동소수점수는 땅다람쥐가 있는 위치의 (x, y) 좌표와 개가 있는 위치의 (x, y) 좌표를 나타낸다. 그 아래로는 n줄에 걸쳐서 땅다람쥐 구멍의 (x, y) 좌표를 나타내는 부동소수점수가 두 개씩 입력된다. 모든 거리는 미터 단위로, 밀리리터 단위까지 (즉 소수점 셋째 자리까지) 반올림한 값으로 입력된다. 파일 종료 문자가 입력되면 입력이 종료되며, 서로 다른 테스트 케이스 사이에는 빈 줄이 입력된다.

출력
각 테스트 케이스마다 한 줄씩 결과를 출력한다. 땅다람쥐가 도망칠 수 있으면 "The gopher can escape through the hole at (x, y)."라고 출력한다, 이때 밀리미터 단위까지 반올림한 값으로 구멍의 좌표를 출력한다. 두 개 이상의 구멍으로 도망칠 수 있으면 더 먼저 입력된 구멍을 출력한다. 한 테스트 케이스에 입력될 수 있는 구멍의 개수는 최대 1,000개고, 모든 좌표는 -10,000 이상, +10,000이하다.

입력예
1 1.000 1.000 2.000 2.000
1.500 1.500
2 2.000 2.000 1.000 1.000
1.500 1.500
2.500 2.500

출력예
The gopher cannot escape.
The gopher escape through the hole at (2.500, 2.500).

체스판 위의 개미 (Ant on a Chessboard)

ACM 퀴즈
어느 날 앨리스라는 개미가 M × M 체스판에 올라갔다. 앨리스는 체스판에 있는 모든 셀을 방문하려고 한다. 그래서 판 한 쪽 구석에서 시작해서 체스판을 한 꺼풀씩 훑어나가기로 했다. 앨리스는 (1, 1)자리부터 움직이기 시작했다. 처음에는 한 칸 위로 올라간 다음, 오른쪽으로 한 칸 이동하고, 다시 한 칸 아래로 내려왔다. 그리고 나서 한 칸 오른쪽으로 움직여서 두 칸 위로 올라가고, 두 칸 왼쪽으로 움직였다. 이런 식으로 매번 한 행, 그리고 한 열씩을 더 움직였다. 예를 들어 앨리스가 25단계를 움직인 경로를 표시해보면 다음과 같다. 여기에서 각 숫자는 앨리스가 각 셀을 방문한 순서를 나타낸다.

2524232221
1011121320
9871419
2361518
1451617

앨리스는 여덟 번째 단계에서는 (2, 3) 위치에 있었고, 20번째 단계에서는 (5, 4) 위치에 있었다. 단계수가 주어졌을 때, 체스판이 매우 커서 움직일 수 있는 위치에 제한이 없다고 할 때, 앨리스의 위치를 결정하는 프로그램을 만들어야 한다.

입력
입력 파일은 여러 줄로 구성되는데, 각 줄마다 단계 번호를 나타내는 정수 N (1≤N≤10^9)이 하나씩 입력된다. 0이 입력되면 입력이 종료된다.

출력
입력된 값에 대해 해당 단계에서의 앨리스의 위치 (x, y)를 나타내는 두 정수를 출력한다. x는 열 번호, y는 행 번호를 나타낸다. 두 정수 사이에는 스페이스가 한 개 들어간다.

입력 예
8
20
25
0

출력 예
2 3
5 4
1 5

'ACM 퀴즈' 카테고리의 다른 글

개와 땅다람쥐 (Dog and Gopher)  (0) 2006.04.14
큰 것이 더 똑똑하다? (Is Bigger Smarter?)  (0) 2006.03.26
주근깨 (Freckles)  (0) 2006.03.04

큰 것이 더 똑똑하다? (Is Bigger Smarter?)

ACM 퀴즈
어떤 사람은 코끼리가 더 똑똑하다고 생각한다. 그런 생각이 틀렸다는 것을 증명하기 위해, 일련의 코끼리들을 분석해서 체중은 증가하는 순서로, IQ는 감소하는 순서로 된 가장 긴 순서열을 뽑아보자.

입력
한 줄에 한 마리씩, 여러 코끼리에 대한 정보가 입력된다. 파일 종료문자가 입력되면 입력이 끝난다. 각 코끼리에 대한 정보는 한 쌍의 정수로 입력되는데, 첫번째 정수는 체중을 킬로그램 단위로 나타낸 것이고, 두번째 정수는 IQ에 100을 곱한 값이다. 두 정수는 모두 1이상 1000이하다. 최대 1000마리의 코끼리에 대한 정보가 입력될 수 있다. 체중이 같은 코끼리가 두 마리 이상 있을 수 있으며, IQ가 같은 코끼리가 두 마리 이상 있을 수도 있다. 그리고 체중과 IQ가 모두 똑같을 수도 있다.

출력
첫째 줄에는 찾아낸 코끼리 순서열의 길이를 나타내는 정수 n을 출력한다. 그 밑으로는 n줄에 걸쳐서 각 코끼리를 찾아내는 양의 정수를 하나씩 출력한다. i번째 데이터 행으로 입력된 숫자들을 W[i], S[i]라고 표기해보자. 찾아낸 n마리의 코끼리의 순서열이 a[1], a[2], ..., a[n]이라면 다음과 같은 관계가 성립해야 한다.
W[a[1]] < W[a[2]] < ... < W[a[n]] 이고, S[a[1]] < S[a[2]] < ... < S[a[n]]
이러 관계가 만족되면서 n값은 최대한 큰 값이어야 한다. 모든 부등호에는 등호는 포함되지 않는다. 즉 체중은 반드시 증가해야 하며 (같으면 안됨), IQ는 감소해야 한다(IQ도 같으면 안됨).
조건이 맞으면 아무 답이나 출력해도 된다.

입력 예
6008 1300
6000 2100
500 2000
1000 4000
1100 3000
6000 2000
8000 1400
6000 1200
2000 1900

출력 예
4
4
5
9
7

'ACM 퀴즈' 카테고리의 다른 글

체스판 위의 개미 (Ant on a Chessboard)  (0) 2006.03.26
주근깨 (Freckles)  (0) 2006.03.04
두 색으로 칠하기 (Bicoloring)  (0) 2006.02.22