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

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

다트게임

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

요약
가중치가 있는 승규의 다트 K개와 위치를 바꿀 수 있는 의석의 다트가 주어질 때, 의석의 다트 최대 L개를 옮겨 얻을 수 있는 원래 점수, 최대 점수, 최소 점수를 1e9+7로 나눈 나머지로 구한다.
난이도

어려움10점 중 9점

유형
동적 계획법, 기하, 수학, 정렬
정답자
아직 제출이 없습니다

문제

승규와 의석이는 다트게임을 즐긴다. 다트게임은 N×MN \times M 크기의 격자 모양 다트판에서 진행되며, 두 사람이 던지는 다트는 항상 다트판에 꽂힌다. 다트판은 1×11 \times 1 크기의 정사각형 칸 N×MN \times M개로 나뉘어 있다. 각 칸은 (x,y)(x, y)로 나타내며, xx는 위에서 몇 번째 칸인지, yy는 왼쪽에서 몇 번째 칸인지를 뜻한다. xx와 yy는 1부터 시작한다. 한 라운드는 다음과 같이 진행되며, 두 사람은 총 KK 라운드를 진행한다. (RR은 RR번째 라운드를 뜻한다.)

  1. 승규가 다트를 던진다. 승규가 던진 다트는 (AR,BR)(A_R, B_R)에 꽂히고 XRX_R의 가중치를 가진다.
  2. 의석이가 다트를 던진다. 던진 다트는 (CR,DR)(C_R, D_R)에 꽂힌다.
  3. 의석이가 점수를 얻는다.

의석이가 얻는 점수는 다음과 같이 계산한다.

  • f(i,j)=(Ai−Cj)2+(Bi−Dj)2f(i,j)=(A_i - C_j)^2 + (B_i - D_j)^2일 때,
  • RR라운드에서 의석이가 얻는 점수는 (∑i=1R(f(i,R)×Xi))(\sum_{i=1}^R{(f(i,R) \times X_i)})이다.

게임이 끝난 뒤 승규가 화장실에 간 틈을 타 의석이는 점수를 조작하려고 한다. 의석이는 자신이 던진 다트 중 최대 LL개의 좌표를 바꿀 수 있다. 좌표가 바뀐 다트도 다트판 위에 있어야 한다. 의석이는 자신이 얻는 원래 점수, 조작해서 얻을 수 있는 최대 점수, 조작해서 얻을 수 있는 최소 점수를 알고 싶어 한다.

예를 들어 위와 같은 상황을 보자. 붉은색 다트는 승규가 던진 다트이고, 검은색 다트는 의석이가 던진 다트이다. 다트에 적힌 숫자는 다트를 던진 라운드를 뜻한다. (가중치는 모두 1로 같다.) 이 상황에서 1라운드에 의석이가 얻는 점수는 1점이고, 2라운드에 얻는 점수는 3점이다. 즉 의석이가 원래 얻는 총점은 4점이다. 여기서 의석이가 자신의 2라운드 다트를 (3,3)으로 옮기면 얻을 수 있는 최대 총점인 14점을 얻는다. 또는 2라운드 다트를 (1,1)로 옮기면 얻을 수 있는 최소 총점인 2점을 얻는다.

계산을 손가락으로밖에 못 하는 의석이를 위해 대신 계산을 해 주자. 의석이가 얻는 원래 점수, 조작해서 얻을 수 있는 최대 점수, 조작해서 얻을 수 있는 최소 점수를 구하자. 값이 너무 커질 수 있으므로 1,000,000,007로 나눈 나머지를 구한다.

입력

첫째 줄에 양의 정수 N,M,K,LN, M, K, L이 빈 칸을 사이에 두고 주어진다. NN은 다트판의 세로 크기, MM은 다트판의 가로 크기, KK는 진행할 라운드 수, LL은 바꿀 수 있는 다트의 수다. 둘째 줄부터 KK개의 줄에 걸쳐 라운드 순서대로 각 줄에 라운드 정보인 양의 정수 AR,BR,XR,CR,DRA_R, B_R, X_R, C_R, D_R이 빈 칸을 사이에 두고 주어진다.

출력

의석이의 원래 점수, 조작해서 얻을 수 있는 최대 점수, 조작해서 얻을 수 있는 최소 점수를 각각 한 줄에 하나씩 출력한다. 출력할 때에는 1,000,000,007로 나눈 나머지를 출력해야 한다.

제한

  • 1 ≤ N,MN, M ≤ 105
  • 1 ≤ KK ≤ min⁡(N×M,4×105)\min(N \times M , 4 \times 10^5)
  • 1 ≤ LL ≤ KK
  • 1 ≤ AR,CRA_R, C_R ≤ NN
  • 1 ≤ BR,DRB_R, D_R ≤ MM
  • 1 ≤ XRX_R ≤ 103

예제5

  1. 예제 1

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

    입력
    5 5 2 1
    4 1 1 1 4
    3 1 1 4 2
    
    예상 출력
    21
    63
    3
    
  3. 예제 3

    입력
    5 5 4 2
    1 1 6 5 1
    1 1 6 4 1
    2 1 6 5 3
    3 4 7 3 2
    
    예상 출력
    622
    1367
    202
    
  4. 예제 4

    입력
    5 5 6 2
    4 1 2 1 4
    3 1 3 4 5
    1 5 1 4 1
    4 2 8 5 1
    4 5 5 3 5
    4 5 3 3 2
    
    예상 출력
    488
    898
    300
    
  5. 예제 5

    입력
    5 5 20 9
    4 1 2 1 4
    3 1 3 4 5
    1 5 1 4 1
    4 2 8 5 1
    4 5 5 3 5
    4 5 3 3 2
    1 1 2 4 3
    3 1 4 3 1
    3 1 10 4 5
    1 1 6 3 2
    3 1 8 4 2
    1 4 8 4 2
    2 4 8 2 2
    5 3 6 1 1
    5 2 5 1 2
    1 4 8 1 3
    2 4 6 1 1
    3 4 6 1 2
    3 5 6 4 4
    1 1 7 1 3
    
    예상 출력
    7344
    13562
    4514