[BOJ 30459] 현수막 걸기

View as PDF

Submit solution

Points: 3
Time limit: 1.0s
Memory limit: 1G

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

쿠는 KUPC를 홍보하기 위해 삼각형 모양의 거대한 현수막을 제작하고자 한다.</p>

현수막을 걸 수 있는 지면에는 $N$개의 말뚝이 한 줄로 박혀 있다. 쿠는 말뚝과 미리 준비해 둔 $M$개의 깃대 중 하나를 이용해 현수막을 걸 수 있다. 현수막을 거는 방법은 아래와 같다.

  1. 박혀있는 말뚝 중 두 개를 골라, 두 말뚝 사이의 공간이 현수막의 밑변이 되도록 현수막을 바닥에 고정한다.
  2. 적절한 깃대를 골라, 두 말뚝 정중앙에 깃대의 길이가 현수막의 높이가 되도록 세워 삼각형 모양으로 현수막을 건다.

쿠에게는 현수막을 살 돈이 충분하지 않기 때문에, 구매할 수 있는 현수막의 최대 넓이 $R$을 미리 구해 두었다. 주어진 말뚝과 깃대를 활용해서 현수막을 걸고자 할 때, 쿠가 구매해서 걸 수 있는 현수막 넓이의 최댓값을 구해주자!

입력 형식

첫째 줄에 말뚝의 개수 $N$, 깃대의 개수 $M$, 쿠가 살 수 있는 최대 현수막 넓이를 나타내는 정수 $R$이 공백으로 구분되어 주어진다. $\left( 2\leq N\leq 2\, 000;\ 1\leq M\leq 40\, 000;\ 1\leq R\leq 10^{9} \right)$</p>

둘째 줄에 말뚝의 위치를 나타내는 $N$개의 정수 $A_i$가 공백으로 구분되어 주어진다. $\left( -20\, 000\leq A_{i}\leq 20\, 000 \right)$

셋째 줄에 쿠가 가지고 있는 깃대의 길이를 나타내는 $M$개의 정수 $B_i$가 공백으로 구분되어 주어진다. $\left( 1\leq B_{i}\leq 40\, 000 \right)$

말뚝의 위치는 서로 다르며, 깃대의 길이도 서로 다르다.

출력 형식

쿠가 구매해서 걸 수 있는 현수막의 최대 넓이를 출력한다. 어떻게 걸어도 현수막을 구매할 수 없는 경우 $-1$을 출력한다. 넓이를 출력하는 경우, 반드시 소수점 첫째 자리까지 출력한다.

예제 입력 1

3 5 23
-5 0 5
1 6 2 8 10

예제 출력 1

20.0

예제 입력 2

2 1 100
1 20
5

예제 출력 2

47.5

예제 입력 3

4 4 5
1 4 10 7
5 16 17 20

예제 출력 3

-1

Comments

There are no comments at the moment.