포럼
문제 USACO0549

찾아 바꾸기

설명

베시는 텍스트 편집 소프트웨어의 최신 최고 혁신인 miV를 사용하고 있다! 그 강력한 찾아 바꾸기 기능을 사용하면 영어 소문자 \(c\)의 모든 출현을 찾아 각각을 비어 있지 않은 소문자 문자열 \(s\)로 바꿀 수 있다. 예를 들어 문자열 "\(\texttt{ball}\)"에서 베시가 \(c\)를 'l'로, \(s\)를 "\(\texttt{na}\)"로 선택하면, 주어진 문자열은 "\(\texttt{banana}\)"로 변환된다.

베시는 문자열 "\(\texttt{a}\)"에서 시작해 이러한 찾아 바꾸기 연산을 여러 번 적용하여 최종 문자열 \(S\)를 만든다. \(S\)는 매우 클 수 있으므로, 그녀는 \(1\le l\le r\le \min(|S|,10^{18})\)\(l\)\(r\)이 주어질 때 \(S_{l\dots r}\) (\(S\)\(l\)번째 문자부터 \(r\)번째 문자까지의 부분 문자열)가 무엇인지 알고 싶어 한다.

모든 연산에 대한 \(|s|\)의 합이 \(2\cdot 10^5\) 이하이고, \(r-l+1\le 2\cdot 10^5\)임이 보장된다.

Problem credits: Benjamin Qi

제약

채점 방식

  • 입력 2-7: \(\sum |s|, r-l+1\le 2000\)
  • 입력 8-15: 추가 제약이 없다.

Problem credits: Benjamin Qi

입력 형식

첫째 줄에 \(l\), \(r\), 그리고 연산의 수가 주어진다.

이후 각 줄은 연산 하나를 설명하며, 그 연산의 \(c\)\(s\)가 주어진다. 모든 문자는 'a'부터 'z'까지의 범위에 있다.

출력 형식

문자열 \(S_{l\dots r}\)를 한 줄에 출력한다.

예제 1
입력
3 8 4
a ab
a bc
c de
b bbb
출력
bdebbb
설명

The string is transformed as follows:
$$ \texttt{a} \rightarrow \texttt{ab} \rightarrow \texttt{bcb} \rightarrow \texttt{bdeb} \rightarrow \texttt{bbbdebbb} $$

문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2022-2023 > January > Gold

태그

평가 및 의견

Find and Replace

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Find and Replace

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8