만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

I, O Bot

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

요약
로봇이 수직선 위의 공을 모두 0번 창고로 옮기는 데 드는 최소 전력을 구합니다. 한 번의 왕복에서 0형 공과 1형 공을 하나씩만 들 수 있고, 모양을 바꾸는 데 C가 듭니다.
난이도

보통10점 중 7점

유형
그리디, 동적 계획법, 정렬
정답자
아직 제출이 없습니다

문제

주피터의 위성 이오에서 열린 개발자 컨퍼런스 참석자를 맞이하려고 주최 측이 거대한 비치볼을 여러 개 불었습니다. 각 공은 대략 11 또는 00 모양이며, 이는 알파벳 I와 O를 닮았습니다. 컨퍼런스가 끝나서 이제 비치볼을 치워야 합니다. 다행히 비치볼 정리 로봇 BALL-E가 이 일을 맡고 있습니다.

컨퍼런스는 무한히 뻗은 수평선 위에서 열렸습니다. 가운데에 역 00이 있고, 오른쪽에는 역 1,2,…1, 2, \dots이, 왼쪽에는 역 −1,−2,…-1, -2, \dots이 있습니다. 역 0에는 이 컨퍼런스의 유일한 비치볼 보관 창고가 있습니다. 나머지 각 역에는 많아야 하나의 비치볼이 있습니다.

BALL-E에는 보관칸이 두 개 있으며, 각각 비치볼을 하나씩 담을 수 있습니다. 한 칸은 11 모양 공만, 다른 한 칸은 00 모양 공만 담습니다. (11 모양 공은 00 모양 공보다 길쭉해서, 어느 모양의 공도 다른 모양의 보관칸에는 들어가지 않습니다.)

BALL-E는 처음에 00 칸과 11 칸이 모두 비어 있으며, 역 0에서 출발합니다. 로봇은 다음 동작을 할 수 있습니다.

  • 왼쪽이나 오른쪽으로 한 역 이동한다. 전력 1단위가 든다.
  • 현재 역에 공이 있고, BALL-E가 그 모양의 공을 아직 보관하고 있지 않다면, 공을 해당 보관칸에 넣을 수 있다. 전력은 0단위가 든다.
  • 현재 역에 공이 있다면, 그 공을 압축해 모양을 반대 모양으로 바꿀 수 있다. 즉 11 모양 공은 00 모양 공이, 00 모양 공은 11 모양 공이 된다. 이때 전력 CC단위가 든다. 다만 BALL-E가 이미 보관칸에 넣은 공의 모양은 바꿀 수 없다.
  • BALL-E가 역 0에 있고 공을 하나 이상 보관하고 있다면, 보관칸의 모든 공을 창고에 맡길 수 있다. 전력은 0단위가 들며, 두 보관칸은 모두 비게 된다.

로봇이 어느 역에 도착했을 때 그곳에 공이 있고 보관칸이 비어 있더라도, 반드시 그 자리에서 공을 집어야 하는 것은 아닙니다. 또 창고가 있는 역에 도착했다고 해서 가지고 있는 공을 반드시 맡겨야 하는 것도 아닙니다.

위의 동작만 사용해 모든 공을 창고로 옮기는 데 필요한 전력의 최솟값을 구하십시오.

입력

입력의 첫 줄에는 테스트 케이스의 수 TT가 주어집니다. 이어서 TT개의 테스트 케이스가 주어집니다. 각 테스트 케이스의 첫 줄에는 두 정수 NN과 CC가 주어집니다. NN은 공의 개수, CC는 공의 모양을 바꾸는 데 필요한 전력 단위입니다. 이어지는 NN개의 줄은 공의 위치(역 번호)와 모양을 나타냅니다. ii번째 줄에는 두 정수 XiX_i와 SiS_i가 주어집니다. XiX_i는 ii번째 공의 위치, SiS_i는 그 모양입니다.

출력

각 테스트 케이스마다 한 줄을 출력합니다. 형식은 Case #x: y이며, xx는 테스트 케이스 번호(1부터 시작), yy는 위에서 설명한 방식으로 모든 공을 창고로 옮기는 데 필요한 전력의 최솟값입니다.

제한

  • 1≤T≤1001 \le T \le 100.
  • 모든 ii에 대해 0≤Si≤10 \le S_i \le 1.
  • 모든 ii에 대해 −109≤Xi≤109-10^9 \le X_i \le 10^9.
  • 0≤C≤1090 \le C \le 10^9.
  • 모든 ii에 대해 Xi≠0X_i \ne 0.
  • 모든 XiX_i는 서로 다르다.

힌트

샘플 케이스 #1(문제 설명에 그림으로 나온 경우)에는 공이 N=5N = 5개 있고 C=0C = 0입니다. 최적 전략 중 하나는 창고에서 출발해 돌아오는 왕복을 세 번 하는 것입니다.

  • 첫 번째 왕복: 역 33으로 이동해 그곳의 00 공을 주워 00 보관칸에 넣습니다. 역 0으로 돌아와 그 공을 창고에 맡깁니다. 전력 66단위가 듭니다.
  • 두 번째 왕복: 역 88로 이동해 그곳의 00 공을 주워 00 보관칸에 넣습니다. 역 66으로 이동해 그곳의 00 공을 11 공으로 바꾼 뒤 주워서 11 보관칸에 넣습니다. 역 0으로 돌아와 두 공을 모두 창고에 맡깁니다. 전력 1616단위가 듭니다. (이 경우 공의 모양을 바꾸는 데 전력이 0단위 든다는 점을 기억하십시오.)
  • 세 번째 왕복: 역 1010으로 이동합니다. 그곳의 11 공을 00 공으로 바꾼 뒤 주워서 00 보관칸에 넣습니다. 역 1515로 이동해 그곳의 11 공을 주워 11 보관칸에 넣습니다. 역 0으로 돌아와 두 공을 모두 창고에 맡깁니다. 전력 3030단위가 듭니다.

모든 공을 모으는 데 필요한 전력의 합은 5252단위입니다.

샘플 케이스 #2는 샘플 케이스 #1과 같지만 C=10C = 10입니다. 이때 BALL-E는 최소 5656단위의 전력을 써야 합니다.

  • 첫 번째 왕복: 역 33의 공을 가져옵니다. 전력 66단위가 듭니다.
  • 두 번째 왕복: 역 66과 역 1010에서 모양이 서로 다른 공을 가져옵니다. (각각 00과 11이므로 어느 공의 모양도 바꿀 필요가 없습니다.) 전력 2020단위가 듭니다.
  • 세 번째 왕복: 역 88과 역 1515에서 모양이 서로 다른 공을 가져옵니다. 전력 3030단위가 듭니다.

샘플 케이스 #3도 샘플 케이스 #1과 같지만 C=1C = 1입니다. 여기서 BALL-E는 최소 5454단위의 전력이 필요합니다.

  • 첫 번째 왕복: 역 33의 공을 가져옵니다. 전력 66단위가 듭니다.
  • 두 번째 왕복: 역 88의 공을 가져옵니다. 돌아오는 길에 역 66을 지날 때 그 공의 모양을 바꾸고 가져옵니다. 전력 1717단위가 듭니다.
  • 세 번째 왕복: 역 1515와 역 1010의 공에 대해 같은 방식을 적용합니다. 전력 3131단위가 듭니다.

샘플 케이스 #4에서 최적 전략 중 하나는 BALL-E가 역 −1000000000-1000000000으로 이동해 그곳의 11 공을 가져오고, 역 10000000001000000000으로 이동해 그곳의 00 공을 가져온 뒤, 역 0으로 돌아와 두 공을 모두 맡기는 것입니다.

예제1

  1. 예제 1

    입력
    4
    5 0
    3 0
    6 0
    8 0
    10 1
    15 1
    5 10
    3 0
    6 0
    8 0
    10 1
    15 1
    5 1
    3 0
    6 0
    8 0
    10 1
    15 1
    2 0
    1000000000 0
    -1000000000 1
    
    예상 출력
    Case #1: 52
    Case #2: 56
    Case #3: 54
    Case #4: 4000000000