Haybale Assignment

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

요약
각 젖소에게 이동 한도 안의 서로 다른 건초더미를 하나씩 할당해 이동 거리 합의 최댓값을 구하고, 불가능하면 -1을 출력합니다.
난이도

보통10점 중 7점

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

문제

농부 존의 농장에는 두 개의 헛간과 NN개의 건초더미가 있으며 그 위치를 수직선으로 표현할 수 있다. 왼쪽 헛간은 좌표 x=0x=0에, 오른쪽 헛간은 좌표 x=N+1x=N+1에 위치해 있으며, 두 헛간 사이의 정수 좌표 x=1,2,⋯ ,Nx=1,2, \cdots, N에는 NN개의 건초더미가 하나씩 놓여있다. 또한 두 헛간에는 총 NN마리의 젖소가 있으며 d_i=Ld\_i=\text{L}이라면 ii번째 젖소가 왼쪽 헛간에, d_i=Rd\_i=\text{R}라면 ii번째 젖소가 오른쪽 헛간에 있음을 나타낸다.

존은 각 젖소에게 서로 다른 건초더미를 하나씩 할당하고자 한다. 각 젖소는 자신이 있는 헛간에서 출발해 할당받은 건초더미로 이동해야 한다. 이때 각 젖소들의 이동 거리는 자신이 있던 헛간의 좌표와 할당받은 건초의 좌표의 차가 된다. 하지만 젖소들은 게으르기 때문에 ii번째 젖소의 이동 거리가 a_ia\_i를 초과한다면 폭동을 일으킬 것이다.

존은 젖소들이 가능한 한 많이 움직이길 바란다. 젖소들이 폭동을 일으키지 않도록 건초를 할당할 때, 이동 거리 합의 최댓값을 구해보자.

입력

첫째 줄에 정수 NN이 주어진다. (1≤N≤300 000)(1 \le N \le 300\ 000)

둘째 줄부터 NN개의 줄에 걸쳐 d_id\_i, a_ia\_i가 공백으로 구분되어 주어진다. d_id\_i는 L과 R 중 하나의 문자이고, d_id\_i가 L이면 ii번 젖소가 왼쪽 헛간, R이면 오른쪽 헛간에 있다는 의미이다. a_ia\_i는 정수이다. (1≤a_i≤N)(1 \le a\_i \le N)

출력

젖소들의 이동 거리의 합의 최댓값을 출력한다. 폭동을 일으키지 않도록 건초더미를 할당하는 것이 불가능하다면 대신 -1을 출력한다.

예제2

  1. 예제 1

    입력
    3
    L 3
    L 2
    R 3
    
    예상 출력
    8
    
  2. 예제 2

    입력
    3
    L 1
    L 1
    R 3
    
    예상 출력
    -1