아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

사탕

면접 대비

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

요약
개수와 열량이 주어진 여러 종류의 사탕을 두 무리로 나눠 두 무리의 총열량 차이가 최소가 되도록 한다.
난이도

보통10점 중 6점

유형
동적 계획법, 비트 연산, 그리디, 수학
정답자
아직 제출이 없습니다

문제

당신과 친구가 큰 사탕 봉지를 함께 나눠 먹으려고 합니다. 두 사람 모두 날씬함을 유지하고 싶어서, 모든 사탕을 두 그룹으로 나누되 두 그룹의 총 열량이 최대한 비슷해지도록 공평하게 나누려고 합니다.

봉지에는 NN가지 종류의 사탕이 들어 있습니다. ii번째 종류의 사탕은 kik_i개가 있으며, 그 종류의 사탕 한 개당 열량은 cic_i입니다. 각 사탕 한 개를 두 그룹 중 하나에 배정합니다(같은 종류의 사탕이라도 서로 다른 그룹에 나누어 넣을 수 있습니다). 두 그룹의 총 열량 차이가 될 수 있는 가장 작은 값을 구하세요.

입력

첫째 줄에 사탕 종류의 수 NN이 주어집니다 (1≤N≤1001 \le N \le 100).

다음 NN개의 줄에는 각각 두 정수 kik_i와 cic_i가 주어집니다. kik_i는 그 종류의 사탕 개수 (1≤ki≤5001 \le k_i \le 500), cic_i는 그 종류의 사탕 한 개당 열량 (1≤ci≤2001 \le c_i \le 200)입니다.

출력

두 그룹의 총 열량 차이의 최솟값을 정수 하나로 출력합니다.

힌트

예제에서는 한 그룹이 100100 열량짜리 사탕 두 개(합 200200)를 가져가고, 다른 그룹이 나머지 사탕(합 126126)을 가집니다. 두 그룹의 차이는 200−126=74200 - 126 = 74이며, 이것이 가능한 최소 차이입니다.

예제4

  1. 예제 1

    입력
    4
    3 5
    3 3
    1 2
    3 100
    
    예상 출력
    74
    
  2. 예제 2

    입력
    1
    1 1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    1
    2 5
    
    예상 출력
    0
    
  4. 예제 4

    입력
    2
    1 1
    1 2
    
    예상 출력
    1