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

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

페카의 학생 시절

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

요약
화물 종류가 짝지어진 N량짜리 두 열차가 있고, 열차를 한 칸씩 앞으로 옮기는 데 드링크 한 캔이 들 때 모든 화물을 옮기는 데 필요한 최소 캔 수를 구한다.
난이도

보통10점 중 6점

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

문제

페카는 자라서 학생이 되었고, 학업이 없는 시간에 철도 화차를 하역하는 아르바이트를 한다. 그는 한 열차의 화물을 옆 평행 선로에 있는 다른 열차로 옮겨야 한다.

첫 번째 열차의 각 화차에 어떤 화물이 있는지, 그리고 두 번째 열차의 각 화차에 어떤 화물이 있어야 하는지는 알려져 있다. 첫 번째 열차의 어떤 화차에 있는 화물이든, 그 맞은편에 있는 두 번째 열차의 화차로 컨베이어를 이용해 쉽게 옮길 수 있다. 문제는 첫 번째 열차의 화차 순서가 두 번째 열차의 화차 순서와 맞지 않을 수 있다는 점이다.

첫 번째 열차의 어떤 화차에 있는 화물을 두 번째 열차의 올바른 화차에 넣기 위해, 페카는 어느 한쪽 열차를 화차 한 칸 길이만큼 (내리막 방향으로만) 밀 수 있고, 그때마다 에너지 음료 한 캔을 마셔야 한다.

페카는 건강을 매우 신경 쓰기 때문에 에너지 음료를 남용하고 싶지 않다. 첫 번째 열차의 모든 화물을 옮기려면 페카가 최소 몇 캔의 음료를 마셔야 하는지 구하자.

다음이 성립한다.

  • 모든 화차의 길이는 같다.
  • 화물의 각 종류에는 정해진 단어, 즉 이름이 대응된다 ("Oil", "Wood" 등).
  • 어떤 종류의 화물을 실은 첫 번째 열차의 화차 수는, 같은 종류의 화물을 실을 두 번째 열차의 화차 수와 같다.
  • 첫 번째 열차에 같은 종류의 화물을 실은 화차가 여러 개 있을 수 있다. 이때 그중 어느 것이든 대응하는 두 번째 열차의 화차로 옮길 수 있다 (단, 전부 옮겨야 한다).
  • 특정 종류의 화물을 실은 첫 번째 열차의 화차가 그 화물을 받을 두 번째 열차의 화차 맞은편에 오면, 페카는 화물을 옮길 수도 있고 옮기지 않을 수도 있다.
  • 처음에 열차들은 첫 번째 열차의 첫 화차가 두 번째 열차의 첫 화차 맞은편에, 첫 번째 열차의 마지막 화차가 두 번째 열차의 마지막 화차 맞은편에 오도록 서 있다.

입력

첫 번째 줄에는 열차의 화차 수 NN이 주어진다 (1≤N≤100 0001\le N\le100\,000). 다음 NN개 줄은 첫 번째 열차의 화차를 연결된 순서대로 나타낸다. 각 줄에는 해당 화차에 있는 화물의 이름이 하나씩 주어진다. 이름은 라틴 알파벳 대소문자로 이루어지며 길이는 1에서 10까지다. 이름은 대소문자를 구분해 같으면 같은 것으로 본다 (예를 들어 "Oil"과 "oil"은 다른 화물이다). 그다음에는 두 번째 열차의 화차를 같은 형식으로 나타낸 NN개 줄이 주어진다.

출력

페카가 화물을 옮기는 데 필요한 에너지 음료 캔의 최소 개수를 출력한다.

예제1

  1. 예제 1

    입력
    3
    Oil
    Wood
    Grain
    Wood
    Grain
    Oil
    
    예상 출력
    4