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

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

곰곰아 선 넘지마

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

요약
0과 1의 개수가 같은 두 이진 문자열 S와 T가 주어질 때, 각 문자열에서 인접한 두 문자의 교환 횟수를 X, Y라 하면 S와 T가 같아지도록 만드는 X^2 + Y^2의 최솟값을 구한다.
난이도

보통10점 중 6점

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

문제

NN 개의 숫자 00 과 MM 개의 숫자 11 로 이루어진 길이의 N+MN+M 의 두 문자열 S 와 T 가 있다. 이 문자열을 가지고 두 곰곰이 친구가 서로 재미있게 놀다가 갑자기 한 곰곰이가 선을 넘어버렸다.

“선 넘지마”

라는 선언과 함께 문자열 S 와 T 가 선을 사이에 두고 분리되어 버렸다. 곰곰이는 이제 노는 것을 그만두고 문자열을 정리하기로 했다. 하지만 선을 넘을 수 없기 때문에 S 문자열 앞에 앉은 곰곰이는 S 문자열만, T 문자열 앞에 앉은 곰곰이는 T 문자열만 수정할 수 있다.

곰곰이는 문자열에서 임의의 인접한 두 문자의 위치를 바꿀 수 있다. 문자의 위치를 바꾸는 연산을 XX 번 수행하면 X2X^2 만큼의 비용이 든다.

두 곰곰이는 각각 S 문자열에서 XX 번, T 문자열에서 YY 번의 연산을 수행하여, S 와 T 가 같은 문자열이 되도록 만들고 싶다. 이 때, 두 곰곰이가 사용한 비용의 합의 최솟값, 즉 X2+Y2X^2 + Y^2 값의 최솟값을 구해보자.

입력

첫째 줄에는 음이 아닌 정수 NN, MM 이 공백을 사이에 두고 주어진다. (1≤N+M≤100,0001 \le N + M \le 100\\,000)

이어 두 번째 줄과 세 번째 줄에 각각 문자열 S 와 T 가 주어진다.

문자열 S 와 T 의 길이는 N+MN+M 이며, NN 개의 숫자 00 과 MM 개의 숫자 11 로 이루어져 있다.

출력

가능한 X2+Y2X^2 + Y^2 의 최소값을 출력한다.

예제3

  1. 예제 1

    입력
    4 3
    1100100
    0100011
    
    예상 출력
    25
    
  2. 예제 2

    입력
    3 0
    000
    000
    
    예상 출력
    0
    
  3. 예제 3

    입력
    2 2
    1100
    0011
    
    예상 출력
    8