QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 512 MB 満点: 100

#1350. Mango

統計

Mango to kot, który mieszka po sąsiedzku. Jego imię pochodzi od faktu, że jego kolor przypomina kolor soku z mango. Nie wiem, czy Mango lubi to imię.

Jak większość kotów, Mango jest uroczy. Mango, którego wiele osób lubi, czasami staje się przedmiotem humorystycznych żartów, takich jak „Mango wygląda smakowicie” lub „To kot, a nie mango”. Ostatnio Mango stał się bohaterem mema dotyczącego generowania następujących rekurencyjnych zdań.

Załóżmy, że mamy początkowy ciąg $M_0$ oraz ciąg reguły $S$. Dla każdej liczby całkowitej dodatniej $i$, $M_i$ jest zdefiniowany jako ciąg, w którym każdy znak „$” jest zastąpiony ciągiem $M_{i-1}$.

Łatwo jest skonstruować kilka pierwszych takich ciągów. Na przykład, jeśli przyjmiemy, że $M_0$ to „That’s a cat, not a mango”, a $S$ to „That’s a "$", not a "$"”, to $M_0$, $M_1$ oraz $M_2$ wyglądają następująco:

  • $M_0$: „That’s a cat, not a mango”.
  • $M_1$: „That’s a "That’s a cat, not a mango", not a "That’s a cat, not a mango"”.
  • $M_2$: „That’s a "That’s a "That’s a cat, not a mango", not a "That’s a cat, not a mango"", not a "That’s a "That’s a cat, not a mango", not a "That’s a cat, not a mango""”.

Nie tylko $M_3$ i $M_4$, ale także $M_{1000}$ można skonstruować przy użyciu tej samej zasady. Jednak nawet $M_5$ jest już dość długi. Mimo to, zastanawiam się, dla ciągu $M_k$ oraz kilku par $(a, b)$, jaki jest podciąg $M_k$ od $a$-tego do $b$-tego znaku włącznie. Napisz program, który znajdzie odpowiedzi na te zapytania.

Wejście

Pierwsza linia zawiera początkowy ciąg $M_0$. Druga linia zawiera ciąg reguły $S$.

Ciągi wejściowe spełniają następujące warunki: Długość każdego ciągu nie jest mniejsza niż 1 i nie większa niż $10^5$. Wszystkie znaki w każdym ciągu mają kod ASCII z zakresu od 33 do 126 włącznie. Zauważ, że znaki białe nie są uwzględnione. $M_0$ nie zawiera żadnych znaków „$” (kod ASCII 36). $S$ zawiera co najmniej jeden znak „$” (kod ASCII 36).

Trzecia linia zawiera dwie liczby całkowite $k$ oraz $q$ ($1 \le k \le 10^5$, $1 \le q \le 10^5$). Każda z następnych $q$ linii zawiera zapytanie: dwie liczby całkowite $a_i$ oraz $b_i$ ($1 \le a_i \le b_i \le 10^{18}$, $b_i - a_i < 10^5$). Gwarantuje się, że $b_i$ nie przekracza długości $M_k$.

Wyjście

Wypisz $q$ linii. W linii $i$ wypisz łącznie $b_i - a_i + 1$ znaków: podciąg $M_k$ od $a_i$-tego znaku do $b_i$-tego znaku włącznie.

Gwarantuje się, że w poprawnej odpowiedzi łączna liczba wypisanych znaków (nie licząc znaków końca linii) nie przekroczy $5 \cdot 10^5$.

Przykład

Wejście 1

It’s_a_cat,_not_a_mango
It’s_"$",_not_"$"
1 6
1 20
18 35
49 61
29 40
41 50
5 5

Wyjście 1

It’s_"It’s_a_cat,_no
_not_a_mango",_not
_not_a_mango"
o",_not_"It’
s_a_cat,_n
_

Wejście 2

Ad_finitum
$
100000 4
1 10
1 2
4 10
5 8

Wyjście 2

Ad_finitum
Ad
finitum
init

Wejście 3

THE_END
$_IS_NEVER_$_IS_NEVER_$
88 5
1 7
3256 3257
67706 67710
111011 111017
999999999999999968 999999999999999993

Wyjście 3

THE_END
IS
NEVER
THE_END
_THE_END_IS_NEVER_THE_END_

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.