페리에 차량 싣기 V

시간 제한1초메모리 제한128 MB

요약
무게가 모두 다른 차량들을 두 차선에 나눠 실을 때 두 차선 총 무게 차이가 최소가 되도록 하고, 그 최솟값을 구한다.
난이도

보통10점 중 5점

유형
동적 계획법, 누적 합, 수학
정답자
아직 제출이 없습니다

문제

차량들을 페리의 두 줄, 즉 왼쪽 줄과 오른쪽 줄로 나누어 싣는다. 각 차량의 무게는 서로 다르며, 두 줄에 실린 차량들의 무게 합이 최대한 비슷해지도록 나누고자 한다. 두 줄의 무게 합의 차이를 가능한 한 작게 만들었을 때, 그 최소 차이를 구한다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 차량의 수 nn이 주어진다 (1<n≤1001 < n \le 100). 이어지는 nn개의 줄에는 각 차량의 무게가 톤 단위로 한 줄에 하나씩 주어진다. 각 무게는 100.0100.0톤을 넘지 않는 양수이며, 소수점 아래 한 자리까지(즉 0.10.1톤 단위로) 주어진다. 한 테스트 케이스 안에서 모든 차량의 무게는 서로 다르다. 마지막 테스트 케이스 다음 줄에 00이 주어지면 입력이 끝난다.

출력

각 테스트 케이스마다, 차량들을 두 줄로 나누었을 때 두 줄의 무게 합의 차이가 될 수 있는 최솟값을 톤 단위로 소수점 아래 한 자리까지 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    5
    10.0
    50.0
    90.0
    38.0
    7.1
    0
    
    예상 출력
    0.9
    
  2. 예제 2

    입력
    4
    1.0
    2.0
    3.0
    4.0
    0
    
    예상 출력
    0.0