카드

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

요약
양면에 숫자가 적힌 N장의 카드를 배열하고 뒤집어서 교대합(+,-)이 최소가 되도록 만드는 값을 구하는 문제입니다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 수학
정답자
아직 제출이 없습니다

문제

아담은 숫자를 좋아한다. 어느 날 서랍에서 빈 카드 묶음을 발견한 그는 각 카드의 양면에 숫자를 하나씩 적고 다음과 같은 퍼즐을 떠올렸다.

아담은 모든 카드를 원하는 순서로 한 줄로 늘어놓고, 필요하다면 어떤 카드든 뒤집어 반대 면이 위를 향하게 할 수 있다. 왼쪽부터 오른쪽으로 위를 향한 숫자를 차례대로 c1,c2,…,cNc_1, c_2, \ldots, c_N이라고 하자. 그러면 아담은 다음 교대합을 계산한다.

c1−c2+c3−c4+⋯+cN−1−cN.c_1 - c_2 + c_3 - c_4 + \cdots + c_{N-1} - c_N.

카드의 개수 NN이 짝수이므로 더하기와 빼기 부호는 정확히 절반씩 나뉜다. 아담은 이 값을 가능한 한 작게 만들고 싶다. 그가 얻을 수 있는 가장 작은 값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 카드의 개수 NN이 주어진다 (2≤N≤100 0002 \le N \le 100\,000, NN은 짝수이다). 다음 NN개의 줄에는 각각 두 정수 aia_i와 bib_i가 주어지며 (−2000≤ai,bi≤2000-2000 \le a_i, b_i \le 2000), 이는 ii번째 카드의 양면에 적힌 숫자이다.

출력

카드를 배열하고 뒤집어서 얻을 수 있는 교대합의 최솟값을 정수 하나로 출력한다.

예제4

  1. 예제 1

    입력
    6
    -8 12
    0 5
    7 -3
    10 -7
    -2 7
    1 4
    
    예상 출력
    -34
    
  2. 예제 2

    입력
    10
    70 70
    62 73
    81 65
    59 77
    99 40
    35 88
    80 57
    76 67
    85 57
    53 96
    
    예상 출력
    -155
    
  3. 예제 3

    입력
    2
    1 2
    3 4
    
    예상 출력
    -3
    
  4. 예제 4

    입력
    4
    0 0
    0 0
    0 0
    0 0
    
    예상 출력
    0