#5137. COLORFUL - Đa sắc

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

n viên bi xếp thành một hàng từ trái sang phải đánh số thứ tự từ 1 đến n . Viên bi thứ i có màu là c_i . Ta định nghĩa độ đa sắc của một đoạn các viên bi liên tiếp là số màu sắc khác nhau của các viên bi trong đoạn này. Có hai loại truy vấn như sau:

  • 1\ u\ v : Đổi chỗ hai viên bi ở vị trí u và vị trí v cho nhau;
  • 2\ u\ v : Tìm độ đa sắc của đoạn bi từ chỉ số u đến chỉ số v .

Dữ liệu:

  • Dòng đầu chứa hai số nguyên dương n là số viên bi và q là số truy vấn (1≤n,q≤10^5) ;
  • Dòng thứ hai chứa n số nguyên dương c_1,c_2,…,c_n\ (1≤c_i≤10^5,∀i=1..n) ;
  • q dòng tiếp theo, dòng thứ i chứa ba số nguyên dương t_i,u_i,v_i mô tả một truy vấn (t_i\in \{1,2\},1≤u_i≤v_i≤n,∀i=1..q) .

Các số trên cùng một dòng được ghi cách nhau một dấu cách.

Kết quả:

  • Ứng với mỗi truy vấn loại 2 , ghi kết quả trên một dòng.

Ví dụ:

Dữ liệu:

5 3
1 3 2 3 4
2 1 3
1 2 3
2 3 5

Kết quả:

3
2

Giải thích:

  • Truy vấn thứ nhất 2\ 1\ 3 : Đếm độ đa sắc trong đoạn [1,3] : kết quả là 3 ;
  • Truy vấn thứ hai 1\ 2\ 3 : Bi số 2 và số 3 đổi chỗ cho nhau, dãy bi mới là 1\ 2\ 3\ 3\ 4 ;
  • Truy vấn thứ ba 2\ 3\ 5 : Đếm độ đa sắc trong đoạn [3,5] : kết quả là 2 .

Giới hạn:

  • Subtask \#1: 30\% số điểm của bài có 1≤n,q≤1000,1≤c_i≤1000,∀i=1,n ;
  • Subtask \#2: 30\% số điểm khác có n,q≤10^5,1≤c_i≤20,∀i=1,n ;
  • Subtask \#3: 40\% số điểm còn lại của bài có n,q≤10^5,1≤c_i≤10^5,∀i=1..n,t_i=2,∀i=1..q (tức là chỉ có truy vấn đếm độ đa sắc, không có truy vấn đổi chỗ).