├── problems
├── pdf
│ ├── uva00573.pdf
│ ├── uva10114.pdf
│ ├── uva10141.pdf
│ ├── uva11172.pdf
│ ├── uva11498.pdf
│ ├── uva11507.pdf
│ ├── uva11559.pdf
│ ├── uva11727.pdf
│ └── uva11799.pdf
├── markdown
│ ├── uva11172.md
│ ├── uva11727.md
│ ├── uva11799.md
│ ├── uva11498.md
│ ├── uva00573.md
│ ├── uva11559.md
│ ├── uva11507.md
│ ├── uva10141.md
│ └── uva10114.md
├── README.md
└── html
│ ├── uva11727.html
│ ├── uva11172.html
│ ├── uva11559.html
│ ├── uva10114.html
│ ├── uva11799.html
│ ├── uva10141.html
│ ├── uva00573.html
│ └── uva11498.html
└── README.md
/problems/pdf/uva00573.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewha0/CPBookKorean/HEAD/problems/pdf/uva00573.pdf
--------------------------------------------------------------------------------
/problems/pdf/uva10114.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewha0/CPBookKorean/HEAD/problems/pdf/uva10114.pdf
--------------------------------------------------------------------------------
/problems/pdf/uva10141.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewha0/CPBookKorean/HEAD/problems/pdf/uva10141.pdf
--------------------------------------------------------------------------------
/problems/pdf/uva11172.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewha0/CPBookKorean/HEAD/problems/pdf/uva11172.pdf
--------------------------------------------------------------------------------
/problems/pdf/uva11498.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewha0/CPBookKorean/HEAD/problems/pdf/uva11498.pdf
--------------------------------------------------------------------------------
/problems/pdf/uva11507.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewha0/CPBookKorean/HEAD/problems/pdf/uva11507.pdf
--------------------------------------------------------------------------------
/problems/pdf/uva11559.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewha0/CPBookKorean/HEAD/problems/pdf/uva11559.pdf
--------------------------------------------------------------------------------
/problems/pdf/uva11727.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewha0/CPBookKorean/HEAD/problems/pdf/uva11727.pdf
--------------------------------------------------------------------------------
/problems/pdf/uva11799.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/lewha0/CPBookKorean/HEAD/problems/pdf/uva11799.pdf
--------------------------------------------------------------------------------
/problems/markdown/uva11172.md:
--------------------------------------------------------------------------------
1 | # UVa 11172 - Relational Operators
2 |
3 | 두 개의 정수가 주어졌을 때, 둘 사이의 대소관계를 비교한 결과를 출력하라.
4 |
5 | ## 입력
6 |
7 | 첫째 줄에는 테스트 케이스의 개수(15 미만)가 주어지고, 이후 각 줄에는 두 개의 정수(절댓값 1000000001 미만)가 주어진다.
8 |
9 | ## 출력
10 |
11 | 대소관계를 비교한 결과를 `<`, `>`, `=` 중의 하나로 출력한다.
12 |
13 | ## 원본 문제
14 |
15 | [UVa 11172 - Relational Operator](https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2113)
16 |
--------------------------------------------------------------------------------
/problems/markdown/uva11727.md:
--------------------------------------------------------------------------------
1 | # UVa 11727 - Cost Cutting
2 |
3 | 어느 회사의 직원 세 사람의 급여가 주어진다. 회사는 급여를 제일 조금 받는 사람과 제일 많이 받는 사람을 정리해고하려 한다. 이 때 남게 되는 사람의 급여를 출력하라.
4 |
5 | ## 입력
6 |
7 | 첫째 줄에는 테스트 케이스의 개수(20 미만)가 주어지고, 이후 각 줄에 서로 다른 정수(1000 이상 1만 이하) 세 개가 주어진다.
8 |
9 | ## 출력
10 |
11 | 답을 나타내는 정수 하나를 출력한다.
12 |
13 | ## 원본 문제
14 |
15 | [UVa 11727 - Cost Cutting](https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2827)
16 |
--------------------------------------------------------------------------------
/problems/markdown/uva11799.md:
--------------------------------------------------------------------------------
1 | # UVa 11799 - Horror Dash
2 |
3 | $N$명의 학생들이 각자 일정한 속도로 달리며 광대의 뒤를 쫓고 있다. 광대는 학생들에게 잡히지 않을 만큼의 속도로 달려야 하지만, 너무 빨리 달려서는 안된다. 이 때 광대의 속도를 출력하라. 속도는 모두 m/s이다.
4 |
5 | ## 입력
6 |
7 | 첫째 줄에는 테스트 케이스의 개수(50 이하)가 주어지고, 이후 각 줄에는 정수 $N$(100 이하), 그리고 각 학생의 속도를 나타내는 정수가 $N$개 주어진다(1만 이하).
8 |
9 | ## 출력
10 |
11 | 답을 나타내는 정수 하나를 출력한다.
12 |
13 | ## 원본 문제
14 |
15 | [UVa 11799 - Horror Dash](https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2899)
16 |
--------------------------------------------------------------------------------
/problems/markdown/uva11498.md:
--------------------------------------------------------------------------------
1 | # UVa 11498 - Division of Nlogonia
2 |
3 | 2차원 평면상에 위치한 기준점 $(N, M)$의 좌표와 점 $K$개의 좌표 $(X, Y)$가 주어진다. 이 때 주어진 점의 위치를 기준점과 비교한 결과를 출력하라.
4 |
5 | ## 입력
6 |
7 | 여러 개의 테스트 케이스가 주어지며, 첫째 줄에는 $K$(1000 이하), 둘째 줄에는 기준점 $(N, M)$의 좌표가, 그리고 다음 $K$개의 줄에는 좌표 $(X, Y)$가 주어진다. 각 좌푯값의 절댓값은 1만 이하이며, $K = 0$이 주어지면 입력이 끝난다.
8 |
9 | ## 출력
10 |
11 | 비교 결과를 `divisa`(기준점에 대해 그려지는 남북, 혹은 동서 경계선상에 위치한 경우), `NO`(북서), `NE`(북동), `SE`(남동), `SO`(남서) 중의 하나로 출력한다.
12 |
13 | ## 원본 문제
14 |
15 | [UVa 11498 - Division of Nlogonia](https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2493)
16 |
--------------------------------------------------------------------------------
/problems/markdown/uva00573.md:
--------------------------------------------------------------------------------
1 | # UVa 00573 - The Snail
2 |
3 | 달팽이가 높이 $H$인 우물을 바닥에서부터 기어 올라가려 한다. 낮에는 올라가고, 밤에 자는 동안에는 $D$만큼 미끄러져 내려온다. 기어 올라가는 거리는 매일 그 전날 대비 일정 양만큼 감소하는데, 첫날에는 $U$만큼 기어 올라가고, 감소하는 양은 $U$의 $F$% 만큼이다(전날의 $F$%가 아니라 첫째 날의 $F$%임에 유의하라). 달팽이가 몇 번째 날에 성공($H$만큼의 높이를 *초과하여* 올라간 경우), 혹은 실패(시작 위치로 돌아간 경우)하는지를 출력하라.
4 |
5 | ## 입력
6 |
7 | 여러 개의 테스트 케이스가 주어지며, 각 줄에 네 개의 자연수 $H$, $U$, $D$, $F$가 주어진다. 각 자연수는 1 이상 100 이하다.
8 |
9 | ## 출력
10 |
11 | 출력 예제와 정확히 일치하는 형태로 답을 출력한다.
12 |
13 | ## 원본 문제
14 |
15 | [UVa 00573 - The Snail](https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=514)
16 |
--------------------------------------------------------------------------------
/problems/markdown/uva11559.md:
--------------------------------------------------------------------------------
1 | # UVa 11559 - Event Planning
2 |
3 | 어떤 사람이 단체 행사를 위해 호텔을 예약하려 한다. 가능한 후보 날짜와 후보 호텔이 있고, 각 날짜별로 호텔의 빈 방이 몇 개나 있는지 주어진다. 행사 날짜에는 참가자 전원이 한 호텔에서 숙박할 수 있도록 빈 방이 인원 수 이상 있어야 하며, 비용은 정해진 예산을 넘지 않아야 한다. 이 때 가능한 최소 비용을 출력하라.
4 |
5 | ## 입력
6 |
7 | 여러 개의 테스트 케이스가 주어지며, 첫째 줄에는 참가자 수(200 이하), 예산(50만 이하), 후보 호텔 수(18 이하), 후보 날짜 수(13 이하)가 주어진다. 이후 각 호텔에 대한 정보가 두 줄씩 주어지는데, 먼저 그 호텔에 한 사람이 숙박할 때의 숙박비가 주어지고, 그 다음 줄에 각 후보 날짜마다 그 날의 빈 방 수가 주어진다.
8 |
9 | ## 출력
10 |
11 | 답을 나타내는 정수 하나를 출력한다. 어떻게 해도 예산을 맞출 수 없다면 `stay home`을 출력한다.
12 |
13 | ## 원본 문제
14 |
15 | [UVa 11559 - Event Planning](https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2595)
16 |
--------------------------------------------------------------------------------
/problems/markdown/uva11507.md:
--------------------------------------------------------------------------------
1 | # UVa 11507 - Bender B. Rodríguez Problem
2 |
3 | 3차원 공간상에 길이 $L$인 철사 원점부터 $x$축의 양의 방향(`+x`)으로, 즉 좌표 $(0, 0, 0)$부터 $(L, 0, 0)$까지에 놓여있다. 이 철사의 $(L-1, 0, 0)$부터 $(1, 0, 0)$까지의 각 점에 대해 철사를 선택적으로 구부리려 한다(구부리지 않거나 구부리거나). 철사를 구부릴 때는 $(i, 0, 0)$에서, 90도만큼, 축 `+y`, `-y`, `+z`, 혹은 `-z`에 평행하게 구부려야 한다(문제 내의 그림 참고). 이 때 최종적으로 철사의 끝이 어느 축 방향을 향하는지 출력하라(예제는 `+x`). 철사를 구부리는 도중에 자신과 교차하더라도 문제 없는 것으로 간주하고 진행한다.
4 |
5 | ## 입력
6 |
7 | 각 테스트 케이스의 첫째 줄에 $L$(10만 이하)이 주어지고, 그 다음 줄에 $(L-1, 0, 0)$부터 $(1, 0, 0)$까지의 각 점에 대해 철사를 어떻게 구부렸는지가 주어진다. 구부리지 않은 경우에는 `No`가 주어지고, 구부린 경우에는 `+y`, `-y`, `+z`, `-z` 중 하나가 주어진다. $L = 0$이 주어지면 입력이 끝난다.
8 |
9 | ## 출력
10 |
11 | 각 테스트 케이스마다 답을 출력한다.
12 |
13 | ## 원본 문제
14 |
15 | [UVa 11507 - Bender B. Rodríguez Problem](https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2502)
16 |
--------------------------------------------------------------------------------
/problems/markdown/uva10141.md:
--------------------------------------------------------------------------------
1 | # UVa 10141 - Request for Proposal
2 |
3 | 어떤 단체가 자신들의 요구사항 목록을 담은 제안 요청서(RFP, Request For Proposal)를 발주하였고, 이에 대한 제안서를 여럿 입수하였다. 각 제안서의 컴플라이언스 점수는 '그 제안서에서 만족하고 있는 요구사항 개수'를 '전체 요구사항 개수'로 나눈 값이다. 컴플라이언스 점수가 가장 높은 제안서를 출력하라. 점수가 동일할 때는 비용이 제일 저렴한 제안서가 우선이며, 비용까지도 같을 때는 입력에서 먼저 주어지는 제안서가 우선이다.
4 |
5 | ## 입력
6 |
7 | 각 테스트 케이스의 첫째 줄에는 요구사항의 개수 $N$(1000 이하)과 제안서의 개수 $p$가 주어진다. 다음 $N$개의 줄에 각 요구사항의 명칭을 나타내는 문자열이 주어진다. 이후 각 제안서에 대한 입력이 주어지는데, 먼저 제안서의 제목이 주어지고, 그 다음 줄에는 비용을 나타내는 실수와 그 제안서가 만족하고 있는 요구사항 개수 $r$이 주어지고, 다음 $r$개의 줄에는 요구사항의 명칭이 주어진다. 문자열은 대소문자를 구별하며 80자를 넘지 않고, 문자열의 끝은 줄 끝(end of line)까지다. $N = p = 0$이 주어지면 입력이 끝난다.
8 |
9 | ## 출력
10 |
11 | 각 RFP의 순번과 답을 나타내는 제안서의 제목을 예제처럼 출력한다.
12 |
13 | ## 원본 문제
14 |
15 | [UVa 10141 - Request for Proposal](https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1082)
16 |
--------------------------------------------------------------------------------
/problems/markdown/uva10114.md:
--------------------------------------------------------------------------------
1 | # UVa 10114 - Loansome Car Buyer
2 |
3 | 어떤 사람이 할부로 자동차를 구매하였다. 계약을 맺을 때 일부 계약금을 지불하였고, 이후에는 매달 일정 금액의 할부금을 납부한다. 자동차의 가치는 매달 일정 비율로 감소하며, 차를 계약하여 처음 타고 나오는 순간 첫 번째 감소 일어난다. 남아있는 할부금의 양이 자동차의 가치보다 처음으로 적어지는 것이 몇 개월 째인지 출력하라. 편의를 위해 이자는 고려하지 않으며, 센트 단위의 반올림도 고려하지 않는다.
4 |
5 | ## 입력
6 |
7 | 여러 개의 테스트 케이스가 주어지며, 첫째 줄에는 할부 개월 수(100 이하), 계약금, 할부원금(자동차의 가치는 \$75,000 이하), 가치 감소 패턴의 수가 주어진다. 이후 각 줄마다 가치 감소 패턴이 두 개의 정수로 주어지며, 앞의 정수는 해당 패턴이 몇 번째 달부터 적용되는지를 나타낸다, 뒤의 값은 가치 감소 비율을 나타낸다.
8 |
9 | ## 출력
10 |
11 | 답이 몇 개월 째인지 출력한다(단수·복수에 유의한다).
12 |
13 | ## 예제
14 |
15 | 첫 번째 예제의 경우, 자동차를 타고 나올 때의 가치는 \$15,500에서 \$13,950으로 10% 줄어들고, 이 때 남아있는 할부금은 여전히 \$15,000이다. 이후 4개월동안 매달 \$500씩의 할부금을 납부하고, 자동차의 가치는 첫 두 달 동안 3%씩, 이후 두 달 동안 0.2%씩 감소한다. 이때 남아있는 할부금은 \$13,000이지만 자동차의 가치는 \$13,073.10528이다.
16 |
17 | ## 원본 문제
18 |
19 | [UVa 10114 - Loansome Car Buyer](https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1055)
20 |
--------------------------------------------------------------------------------
/problems/README.md:
--------------------------------------------------------------------------------
1 | # 개요
2 |
3 | # 1장 도입
4 |
5 | ## 1.3 첫걸음 떼기: 쉬운 문제들
6 |
7 | * UVa 온라인 채점 사이트에 올라와 있는 매우 쉬운(7분 안에 풀 수 있는) 문제들
8 | * **UVa 11172 - Relational Operators \*** ([markdown](markdown/uva11172.md), [pdf](pdf/uva11172.pdf), [html](html/uva11172.html))
9 | * **UVa 11498 - Division of Nlogonia \*** ([markdown](markdown/uva11498.md), [pdf](pdf/uva11498.pdf), [html](html/uva11498.html))
10 | * **UVa 11727 - Cost Cutting \*** ([markdown](markdown/uva11727.md), [pdf](pdf/uva11727.pdf), [html](html/uva11727.html))
11 | * 쉬움('매우 쉬움'에 속한 문제들보다는 '약간 더' 어려움)
12 | * **UVa 10114 - Loansome Car Buyer \*** ([markdown](markdown/uva10114.md), [pdf](pdf/uva10114.pdf), [html](html/uva10114.html))
13 | * **UVa 11559 - Event Planning \*** ([markdown](markdown/uva11559.md), [pdf](pdf/uva11559.pdf), [html](html/uva11559.html))
14 | * **UVa 11799 - Horror Dash \*** ([markdown](markdown/uva11799.md), [pdf](pdf/uva11799.pdf), [html](html/uva11799.html))
15 | * 중간: 쉬움에 속한 문제들보다는 한 등급 높음(15~30분 정도가 걸리겠지만 너무 어렵진 않음)
16 | * **UVa 00573 - The Snail \*** ([markdown](markdown/uva00573.md), [pdf](pdf/uva00573.pdf), [html](html/uva00573.html))
17 | * **UVa 10141 - Request for Proposal \*** ([markdown](markdown/uva10141.md), [pdf](pdf/uva10141.pdf), [html](html/uva10141.html))
18 | * **UVa 11507 - Bender B. Rodríguez Problem \*** ([markdown](markdown/uva11507.md), [pdf](pdf/uva11507.pdf), [html](html/uva11507.html))
19 |
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CPBookKorean
2 |
3 | 이 프로젝트는 제가 우리말로 번역한 책 [\<(ACM ICPC, IOI/KOI) 알고리즘 트레이닝: 자료 구조, 알고리즘 문제 해결 핵심 노하우\>](http://www.insightbook.co.kr/book/programming-insight/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%ED%8A%B8%EB%A0%88%EC%9D%B4%EB%8B%9D)와 관련된 보조 자료를 모아 놓은 것입니다. 보조 자료로는 문제(UVa, 라이브 아카이브 등의) 요약 번역본, 원서 홈페이지에서 제공되는 코드의 번역본(영문 주석 번역), 그리고 시각화 자료가 있습니다. 자료에 대한 링크는 아래에, 그리고 자료에 대한 부연 설명은 좀 더 아래에 있습니다.
4 |
5 | ## 중요 링크
6 |
7 | 1. [문제 요약 번역본](problems/)
8 | 2. 코드 (현재 작업중입니다)
9 | 3. [시각화 자료 VISUALGO](https://visualgo.net/ko)
10 |
11 | ## 부연 설명
12 |
13 | 이 책이 나오고 난 뒤 프로그래밍 문제가 영어로만 제공되고 있다는 점이 아쉽다는 이야기를 많이 들었습니다. 실력을 향상시키기 위해서는 많은 문제를 풀어보는 것이 좋다는 게 원 저자의, 그리고 저의 생각입니다. 그러나 막상 문제를 풀어보려고 UVa, 라이브 아카이브 등의 온라인 채점 사이트에 들어가 보면 영어로 된 문제가 기다리고 있습니다. 그런 분들께 조금이라도 도움이 되고자 이 책에 나온 문제들도 번역해야겠다는 생각을 하게 되었습니다.
14 |
15 | 하지만 저작권과 관련된 이슈 때문에 문제 본문을 있는 그대로 번역할 수는 없었습니다. 고민 끝에 우선은 문제의 핵심만을 요약하여 우리말로 옮기려 합니다. 그와 동시에 문제의 원 저자께 허락을 구하고, 허락받은 문제는 전문을 번역할 예정입니다. 또한 우선은 저자가 **반드시 풀어보아야 한다고 \*** 표시해 둔 문제부터 번역할 예정이며, 틈나는 대로 다른 문제들도 번역하려 합니다.
16 |
17 | 반대로 저작권 관련 문제가 없는 보조 자료도 있습니다. 원 저자가 [원서 홈페이지](https://cpbook.net/)에서 제공하고 있는 소스 코드의 번역본입니다. 이에 대해서는 저자의 허락을 받았기 때문에 여러분께 별다른 문제 없이 제공해드릴 수 있게 되었습니다. 영문 주석을 우리말로 번역중에 있으며, 일부 코드는 책 본문에 나오기도 했으니 참고하시기 바랍니다.
18 |
19 | 마지막 보조 자료로 시각화 자료(VISUALGO)도 있습니다. 시각화 자료의 경우에는 [홈페이지](https://visualgo.net/ko)에서 번역본을 우리말을 포함한 다양한 언어로 제공하고 있습니다. 번역은 자발적 지원자 몇 분에 의해 진행되고 있으며, 저도 번역에 참여하고 있습니다. 아직 많이 진척되진 않았지만, 이 또한 차근차근 진행해 나가겠습니다.
20 |
21 | ## 책 소개
22 |
23 | 제가 번역한 책의 원제는 \ 입니다. 원서의 저자는 스티븐 할림(Steven Halim)과 펠릭스 할림(Felix Halim)으로, 두 사람 모두 경진 프로그래밍 커뮤니티(특히 동남아시아 지역)에 많은 기여를 한 사람들입니다. 원서에 대한 소개는 [원서 홈페이지](https://cpbook.net/)를, 번역서에 대한 소개는 [번역서 홈페이지](http://www.insightbook.co.kr/book/programming-insight/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%ED%8A%B8%EB%A0%88%EC%9D%B4%EB%8B%9D)를 참고하시 바랍니다. 또한 출판사 홈페이지(블로그)에도 [책 소개글](http://www.insightbook.co.kr/11923)이 올라와 있습니다.
24 |
25 | ## 사족
26 |
27 | 저도 문제를 풀고 있으며, 제 풀이 코드를 github에 올리고 있습니다(https://github.com/lewha0/UVAOJ). 되도록이면 문제를 스스로 풀어보실 것을 권합니다. 문제를 직접 풀고 난 후에 비교해보기 위해서, 혹은 한 문제에 너무 오랫동안 막혀 있어서 답답할 때에만 다른 사람의 코드를 참고하시기 바랍니다.
28 |
29 | ## 업데이트 내역
30 | * 2017-10-10: 초안을 만들어 github에 처음 올렸습니다.
31 |
32 |
--------------------------------------------------------------------------------
/problems/html/uva11727.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | uva11727.md
221 |
222 |
223 |
UVa 11727 - Cost Cutting
어느 회사의 직원 세 사람의 급여가 주어진다. 회사는 급여를 제일 조금 받는 사람과 제일 많이 받는 사람을 정리해고하려 한다. 이 때 남게 되는 사람의 급여를 출력하라.
입력
첫째 줄에는 테스트 케이스의 개수(20 미만)가 주어지고, 이후 각 줄에 서로 다른 정수(1000 이상 1만 이하) 세 개가 주어진다.
어떤 사람이 단체 행사를 위해 호텔을 예약하려 한다. 가능한 후보 날짜와 후보 호텔이 있고, 각 날짜별로 호텔의 빈 방이 몇 개나 있는지 주어진다. 행사 날짜에는 참가자 전원이 한 호텔에서 숙박할 수 있도록 빈 방이 인원 수 이상 있어야 하며, 비용은 정해진 예산을 넘지 않아야 한다. 이 때 가능한 최소 비용을 출력하라.
입력
여러 개의 테스트 케이스가 주어지며, 첫째 줄에는 참가자 수(200 이하), 예산(50만 이하), 후보 호텔 수(18 이하), 후보 날짜 수(13 이하)가 주어진다. 이후 각 호텔에 대한 정보가 두 줄씩 주어지는데, 먼저 그 호텔에 한 사람이 숙박할 때의 숙박비가 주어지고, 그 다음 줄에 각 후보 날짜마다 그 날의 빈 방 수가 주어진다.
출력
답을 나타내는 정수 하나를 출력한다. 어떻게 해도 예산을 맞출 수 없다면 stay home을 출력한다.
어떤 사람이 할부로 자동차를 구매하였다. 계약을 맺을 때 일부 계약금을 지불하였고, 이후에는 매달 일정 금액의 할부금을 납부한다. 자동차의 가치는 매달 일정 비율로 감소하며, 차를 계약하여 처음 타고 나오는 순간 첫 번째 감소 일어난다. 남아있는 할부금의 양이 자동차의 가치보다 처음으로 적어지는 것이 몇 개월 째인지 출력하라. 편의를 위해 이자는 고려하지 않으며, 센트 단위의 반올림도 고려하지 않는다.
입력
여러 개의 테스트 케이스가 주어지며, 첫째 줄에는 할부 개월 수(100 이하), 계약금, 할부원금(자동차의 가치는 $75,000 이하), 가치 감소 패턴의 수가 주어진다. 이후 각 줄마다 가치 감소 패턴이 두 개의 정수로 주어지며, 앞의 정수는 해당 패턴이 몇 번째 달부터 적용되는지를 나타낸다, 뒤의 값은 가치 감소 비율을 나타낸다.
출력
답이 몇 개월 째인지 출력한다(단수·복수에 유의한다).
예제
첫 번째 예제의 경우, 자동차를 타고 나올 때의 가치는 $15,500에서 $13,950으로 10% 줄어들고, 이 때 남아있는 할부금은 여전히 $15,000이다. 이후 4개월동안 매달 $500씩의 할부금을 납부하고, 자동차의 가치는 첫 두 달 동안 3%씩, 이후 두 달 동안 0.2%씩 감소한다. 이때 남아있는 할부금은 $13,000이지만 자동차의 가치는 $13,073.10528이다.
어떤 단체가 자신들의 요구사항 목록을 담은 제안 요청서(RFP, Request For Proposal)를 발주하였고, 이에 대한 제안서를 여럿 입수하였다. 각 제안서의 컴플라이언스 점수는 '그 제안서에서 만족하고 있는 요구사항 개수'를 '전체 요구사항 개수'로 나눈 값이다. 컴플라이언스 점수가 가장 높은 제안서를 출력하라. 점수가 동일할 때는 비용이 제일 저렴한 제안서가 우선이며, 비용까지도 같을 때는 입력에서 먼저 주어지는 제안서가 우선이다.
입력
각 테스트 케이스의 첫째 줄에는 요구사항의 개수 (1000 이하)과 제안서의 개수 가 주어진다. 다음 개의 줄에 각 요구사항의 명칭을 나타내는 문자열이 주어진다. 이후 각 제안서에 대한 입력이 주어지는데, 먼저 제안서의 제목이 주어지고, 그 다음 줄에는 비용을 나타내는 실수와 그 제안서가 만족하고 있는 요구사항 개수 이 주어지고, 다음 개의 줄에는 요구사항의 명칭이 주어진다. 문자열은 대소문자를 구별하며 80자를 넘지 않고, 문자열의 끝은 줄 끝(end of line)까지다. 이 주어지면 입력이 끝난다.
달팽이가 높이 인 우물을 바닥에서부터 기어 올라가려 한다. 낮에는 올라가고, 밤에 자는 동안에는 만큼 미끄러져 내려온다. 기어 올라가는 거리는 매일 그 전날 대비 일정 양만큼 감소하는데, 첫날에는 만큼 기어 올라가고, 감소하는 양은 의 % 만큼이다(전날의 %가 아니라 첫째 날의 %임에 유의하라). 달팽이가 몇 번째 날에 성공(만큼의 높이를 초과하여 올라간 경우), 혹은 실패(시작 위치로 돌아간 경우)하는지를 출력하라.
입력
여러 개의 테스트 케이스가 주어지며, 각 줄에 네 개의 자연수 , , , 가 주어진다. 각 자연수는 1 이상 100 이하다.