QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB

#21392. カードパック

Statistics

互いに素な $2$ つの正の整数 $p$ と $q$ が与えられます。$0, 1, \ldots, pq - 1$ の番号が付けられた $pq$ 種類のカードがあります。

標準カードパックには次の $2$ つのタイプがあります:

  • タイプ 1 の標準カードパック:$u$($0 \le u < p$)によって番号付けられた $p$ 種類があります。番号 $u$ のパックには、番号が $x \equiv u \pmod{p}$ を満たすすべてのカードが $1$ 枚ずつ含まれており、したがって各パックにはちょうど $q$ 枚のカードが含まれます。
  • タイプ 2 の標準カードパック:$v$($0 \le v < q$)によって番号付けられた $q$ 種類があります。番号 $v$ のパックには、番号が $x \equiv v \pmod{q}$ を満たすすべてのカードが $1$ 枚ずつ含まれており、したがって各パックにはちょうど $p$ 枚のカードが含まれます。

現在、テーブルの上に $n$ 枚のカードが並べられており、$i$ 番目のカードの番号は $a_i$ です。以下の $2$ 種類の操作を $Q$ 回処理する必要があります:

  • 1 i x:$i$ 番目のカードの番号を $x$ に置き換える。
  • 2 l r:区間 $[l, r]$ 内のすべてのカードを、いくつかの標準カードパックにちょうど分割できるかどうかを判定する。

注記: カードをパックに詰め直す際、区間内の各カードはちょうど $1$ つのパックに属さなければならず、各種類の標準カードパックは何回でも使用できます。

入力

$1$ 行目には $4$ つの整数 $n, p, q, Q$($1 \le n, p, q, Q \le 3 \times 10^5$、$2 \le p + q \le 3 \times 10^5$、$\gcd(p, q) = 1$)が与えられます。

$2$ 行目には、各カードの初期番号を表す $n$ 個の整数 $a_1, a_2, \ldots, a_n$($0 \le a_i < pq$)が与えられます。

続く $Q$ 行にはそれぞれ、1 i x または 2 l r の形式で操作が与えられます:

  • $1$ 番目のタイプのすべての操作について、$1 \le i \le n$ および $0 \le x < pq$ であることが保証されます。
  • $2$ 番目のタイプのすべての操作について、$1 \le l \le r \le n$ であることが保証されます。

出力

$2$ 番目のタイプの各操作について、指定されたカードをいくつかの標準カードパックにちょうど分割できる場合は YES を出力し、そうでない場合は NO を出力してください。

入出力例

入力 1

8 2 3 5
0 0 2 3 4 1 4 2
2 1 5
2 6 8
1 8 5
2 6 8
2 6 7

出力 1

YES
NO
NO
YES

注記

$p = 2, q = 3$ のとき:

  • タイプ 1 の標準カードパックは $2$ 種類あります:$\{0, 2, 4\}$ と $\{1, 3, 5\}$ です。
  • タイプ 2 の標準カードパックは $3$ 種類あります:$\{0, 3\}$、$\{1, 4\}$、$\{2, 5\}$ です。

最初のクエリでは、区間内のカードの多重集合は $\{0, 0, 2, 3, 4\}$ です。これは $\{0, 2, 4\} + \{0, 3\}$ に分割できるため、答えは YES です。

最後のクエリでは、区間内のカードの多重集合は $\{1, 4\}$ です。これはちょうど $1$ つのタイプ 2 の標準カードパックをなすため、答えは YES です。

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.