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

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

왕복 스고로쿠

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

요약
말이 한 줄 위를 좌우로 움직이며 X와 아직 지우지 않은 #에서 방향을 바꾸고, 모든 #이 사라질 때까지 걸리는 시간을 구한다.
난이도

보통10점 중 6점

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

문제

JOI 고등학교의 아오이는 새로운 스고로쿠를 샀다. 이 스고로쿠는 N+2개의 칸이 가로로 한 줄로 늘어선 형태이다. 칸에는 왼쪽 끝 칸부터 오른쪽 끝 칸까지 순서대로 0부터 N+1까지의 번호가 붙어 있다. 처음에 칸 0과 칸 N+1에는 X가, 칸 i (1 ≦ i ≦ N)에는 Si가 적혀 있다. 단, Si는 문자 . 또는 #이다.

아오이는 이 스고로쿠와 말 하나를 가지고 놀고 있다. 처음에 말은 칸 A (1 ≦ A ≦ N)에 오른쪽을 향한 상태로 놓여 있다. 단, SA는 문자 .이다. 아오이는 1초가 지날 때마다 말을 향하고 있는 방향으로 1칸 이동시킨다.

이 스고로쿠에는 다음과 같은 규칙이 정해져 있다.

  • X가 적힌 칸에 말이 오르면 말의 방향이 반전된다.
  • .이 적힌 칸에 말이 오르더라도 아무 일도 일어나지 않는다.
  • #이 적힌 칸에 말이 오르면 말의 방향이 반전된다. 이때 이 칸에 적힌 문자를 .으로 바꾼다. 따라서 그 뒤에는 이 칸에 말이 오르더라도 방향이 반전되지 않는다.

말의 반전과 문자의 변경에 걸리는 시간은 무시할 수 있다.

스고로쿠와 말의 처음 상태가 주어졌을 때, #이 적힌 칸이 모두 없어질 때까지 걸리는 시간을 구하는 프로그램을 작성하시오.

입력

입력은 다음 형식으로 표준 입력에서 주어진다.

N A
S

단, S는 길이 N의 문자열이고, 그 i번째 문자 (1 ≦ i ≦ N)는 Si이다.

출력

표준 출력에, #이 적힌 칸이 모두 없어질 때까지 몇 초가 걸리는지를 1행으로 출력하시오.

제한

  • 2 ≦ N ≦ 200 000.
  • 1 ≦ A ≦ N.
  • Si는 문자 . 또는 #이다 (1 ≦ i ≦ N).
  • SA는 문자 .이다.
  • Si가 문자 #인 i (1 ≦ i ≦ N)가 적어도 1개 존재한다.

예제3

  1. 예제 1

    입력
    7 3
    .#.#..#
    
    예상 출력
    8
    
  2. 예제 2

    입력
    4 1
    .#.#
    
    예상 출력
    7
    
  3. 예제 3

    입력
    6 6
    #####.
    
    예상 출력
    35