Codeforces Round #804 (Div. 2)
4 өдрийн дараа |
C. Хоёр сэлгэмэл
хугацааны хязгаарлалт 6 секунд
санах ойн хязгаарлалт 512 мегабайт
оролт стандарт оролт
гаралт стандарт гаралт
Танд $n$ элементтэй $p$, $q$ сэлгэмэл болон $l_1$, $r_1$, $l_2$, $r_2$ ($l_1 ≤ r_1$; $l_2 ≤ r_2$) хэлбэрийн $m$ хүсэлт өгөгдсөн. Таны даалгавар бол $p$ сэлгэмлийн хувьд $[l_1, r_1]$ (зах нь орно) хэсэгт байгаа тоонууд болон $q$ $[l_2, r_2]$ (зах нь орно) хэсэгт байгаа тоонуудаас давхцаж байгаа тоо хэдэн ширхэг байгааг олох юм.
$n$ элементтэй сэлгэмэл гэдэг нь $n$ ширхэг ялгаатай, бүх элементийн утга нь $1$-с багагүй, $n$-с ихгүй байх тоон дараалал юм.
$g_1, g_2, ... , g_n$ дараалалд байгаа $v$ ($1 ≤ v ≤ n$) тооны байрлал нь $g_i = v$ байх $i$ индекс юм.
Оролт
Оролтын эхний мөрөнд $2$ сэлгэмлийн элементийн тоо $n$ ($1 ≤ n ≤ 10^6$) өгөгдөнө. Дараагийн мөрөнд $p$ сэлгэмлийн элементүүд $p_1, p_2, ... , p_n$ ($1 ≤ p_i ≤ n$) байна. Гуравдугаар мөрөнд $q$ сэлгэмлийн элементүүд $q_1, q_2, ... , q_n$ өгөгдөнө.
Дараагийн мөрөнд хүсэлтийн тоо $m$ ($1 ≤ m ≤ 2·10^5$).
Үүний дараа $m$ мөр бүрт хүсэлтүүдийг тодорхойлох өгөгдөл байрлана. $i$-р мөрөнд $a$, $b$, $c$, $d$ тоонууд өгөгдөх бөгөөд хүсэлтийн мэдээлэл болох $l_1, r_1$, $l_2$, $r_2$-г дараах байдлаар олно:
- Шинэ хувьсагч $x$-г тодорхойлно. Хэрвээ анхны хүсэлт бол утга нь $0$ байна. бусад тохиолдолд өмнөх хүсэлтэн дахь утгаасаа $1$-р их байна.
- $f(z) = ((z - 1 + x) \ mod \ n) + 1$ гэж тодорхойлъё.
- $l_1 = min(f(a), f(b))$, $r_1 = max(f(a), f(b))$, $l_2 = min(f(c), f(d))$, $r_2 = max(f(c), f(d))$ тус тус байна.
Гаралт
Хүсэлт бүрийн хариуг нэр мөрөнд хэвлэ.
Орчуулсан: zoloogg
Жишээ тэстүүд
Оролт
3 3 1 2 3 2 1 1 1 2 3 3
Гаралт
1
Оролт
4 4 3 2 1 2 3 4 1 3 1 2 3 4 1 3 2 1 1 4 2 3
Гаралт
1 1 2