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

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

팔렘방의 다리

시간 제한2초메모리 제한256 MB

요약
최대 두 개의 다리 위치를 정해 모든 시민의 총 이동 거리를 최소화합니다.
난이도

보통10점 중 7점

유형
정렬, 그리디, 누적 합
정답자
아직 제출이 없습니다

문제

팔렘방 시에는 무시강이 흘러 도시가 두 구역으로 나뉜다. 두 구역을 구역 A와 구역 B라고 하자.

각 구역에는 강변을 따라 빌딩이 정확히 1,000,000,001개 있고, 0번부터 1,000,000,000번까지 번호가 붙어 있다. 이웃한 두 빌딩 사이의 거리는 1이고 강의 폭도 1이다. 구역 A의 빌딩 ii는 구역 B의 빌딩 ii와 강을 사이에 두고 정확히 마주 본다.

시민 NN명이 이 도시에서 살면서 일한다. 시민 ii는 구역 PiP_i의 빌딩 SiS_i에 살고, 사무실은 구역 QiQ_i의 빌딩 TiT_i에 있다. 사는 곳과 사무실이 서로 다른 구역에 있으면 지금까지는 배로 강을 건너야 했다. 배를 타는 일이 번거롭기 때문에 시는 다리를 최대 KK개 놓아서 모든 시민이 자동차로만 출근하게 만들려고 한다. 다리는 강과 수직이어야 하므로 같은 번호의 두 빌딩을 잇고, 서로 다른 다리는 서로 다른 번호에 놓인다.

다리를 다 놓은 뒤 시민 ii가 집에서 사무실까지 자동차로 이동하는 최소 거리를 DiD_i라고 하자. D1+D2+⋯+DND_1 + D_2 + \cdots + D_N이 최소가 되도록 다리를 놓았을 때 그 최솟값을 구하라.

입력

첫 줄에 KK와 NN이 주어진다. 이어지는 NN개의 줄에는 각각 PiP_i, SiS_i, QiQ_i, TiT_i가 공백으로 구분되어 주어진다.

  • PiP_i와 QiQ_i는 한 글자 'A' 또는 'B'이다.
  • 0≤Si,Ti≤1090 \le S_i, T_i \le 10^9
  • 1≤K≤21 \le K \le 2
  • 1≤N≤100 0001 \le N \le 100\,000
  • 서로 다른 시민의 집이나 사무실이 같은 빌딩에 있을 수 있고, 한 시민의 집이 다른 시민의 사무실과 같은 빌딩일 수도 있다.

출력

출근 거리 합의 최솟값을 한 줄에 출력한다.

힌트

두 예제 입력을 함께 나타낸 그림이다.

첫 번째 예제의 답이 되는 배치 하나이다. 분홍색 부분이 다리이다.

두 번째 예제의 답이 되는 배치 하나이다.

예제3

  1. 예제 1

    입력
    1 5
    B 0 A 4
    B 1 B 3
    A 5 B 7
    B 2 A 6
    B 1 A 7
    
    예상 출력
    24
    
  2. 예제 2

    입력
    2 5
    B 0 A 4
    B 1 B 3
    A 5 B 7
    B 2 A 6
    B 1 A 7
    
    예상 출력
    22
    
  3. 예제 3

    입력
    2 3
    A 0 A 10
    B 5 B 5
    A 7 A 3
    
    예상 출력
    14