Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập

Bài được chọn theo nhịp luyện tập của bạn, cùng mọi bài mới vừa lên.

root

Phun thuốc

100 điểm

Trên một vùng đất rộng lớn được xem như một mặt phẳng tọa độ có góc là \((0,0)\), người ta thực hiện nhiều chiến dịch phun thuốc trừ sâu. Mỗi chiến dịch sẽ phun thuốc lên một mảnh đất hình chữ nhật, được xác định bởi hai đỉnh đối diện là \((x_1, y_1)\) và \((x_2, y_2)\) (các cạnh song song với trục tọa độ).

Mỗi lần phun thuốc, tất cả các ô nằm trong phạm vi hình chữ nhật sẽ tăng thêm đúng \(1\) đơn vị thuốc.

Một ô là đạt chuẩn nếu lượng thuốc tại ô đó nằm trong đoạn \([L,R]\).

Hãy tính số ô đạt chuẩn sau tất cả các chiến dịch phun thuốc.

Input

  • Dòng đầu tiên chứa ba số nguyên \(N\), \(L\), \(R\) --- số lượng chiến dịch phun thuốc, ngưỡng an toàn dưới và trên (\(1 \leq N \leq 10^5\), \(0 \leq L \leq R \leq N\)).
  • \(N\) dòng tiếp theo, mỗi dòng chứa bốn số nguyên \(x_1, y_1, x_2, y_2\) (\(0 \leq x_1 \leq x_2 \leq 10^5\), \(0 \leq y_1 \leq y_2 \leq 10^5\)) --- mô tả phạm vi phun thuốc của chiến dịch thứ \(i\).

Output

In ra một số nguyên duy nhất là số ô đạt chuẩn.

Example

Test 1

Input
4 1 1
2 2 6 5
3 3 7 6
7 5 9 7
8 3 10 6
Output
25

Test 2

Input
4 1 2
2 2 6 5
3 3 7 6
7 5 9 7
8 3 10 6
Output
43

Scoring

\begintabular|c|c|l|
\hline
Subtask & Điểm & Giới hạn

\hline
1 & 8 & \(N \le 200\), \(0 \le x_1 \le x_2 \le 200\), \(0 \le y_1 \le y_2 \le 200\)

\hline
2 & 12 & \(0 \le x_1 \le x_2 \le 2000\), \(0 \le y_1 \le y_2 \le 2000\)

\hline
3 & 10 & \(L = 1\), \(R = N\)

\hline
4 & 20 & \(L = R = N\)

\hline
5 & 15 & \(L = R\)

\hline
6 & 15 & \(N \le 10^4\)

\hline
7 & 20 & Không có ràng buộc bổ sung

\hline
\endtabular

root

Tô màu dải lụa

100 điểm

Tại một ngôi làng cổ nổi tiếng với nghề thủ công truyền thống, lễ hội mùa xuân đang đến gần. Theo phong tục, mỗi gia đình sẽ treo một dải lụa dài trước cửa nhà như biểu tượng của may mắn và thịnh vượng.

Gia đình của Mitsuha cũng vậy, họ sẽ tự tô màu một dải lụa rồi treo trước nhà. Và năm nay, Mitsuha được giao nhiệm vụ lên kế hoạch trang trí dải lụa đó.

Khi ta trải thẳng dải lụa, nó như một đoạn thẳng có \(N\) ô, và ban đầu có một số ô đã được vẽ sẵn họa tiết. Những ô còn lại đang có màu \(0\).

Quy trình tô diễn ra như sau:

  • Mitsuha chọn một cây bút có mã màu từ \(1\) đến \(10^{18}\).
  • Bước tiếp theo, cô sẽ chọn một trong \(N\) ô, và tại ô đó chưa được tô màu và cũng không chứa họa tiết. Sau đó cô có một trong \(2\) lựa chọn sau: \begin itemize
  • Cô vẽ hoạ tiết lên ô đó.
  • Cô bắt đầu tô từ ô được chọn, sau đó kéo một đường sang trái cho đến khi cô gặp một ô có họa tiết hoặc đã được tô màu sẵn hoặc ra khỏi dải lụa. Những ô vừa tô sẽ mang màu \(i\) là mã của cây bút màu cô chọn.

\end itemize

  • Quy trình tô này có thể kết thúc tại bất cừ thời điểm nào.

\begincenter

\smallVí dụ khi Mitsuha đặt bút màu đỏ tại ô \(5\), khi đó cô ấy sẽ kéo màu sang trái đến ô \(3\) - là ô có họa tiết. (X là các ô có họa tiết)
\endcenter
Lưu ý trong quy trình trên, một mã màu chỉ được chọn nhiều nhất một lần.

Mitsuha muốn được biết có bao nhiêu cách tô màu khác nhau cho dải lụa trên. \(2\) cách được gọi là khác nhau khi không tồn tại cách đánh số lại màu để tạo ra dải màu tương tự. Lưu ý, màu của các họa tiết không phân biệt.

Ví dụ xét \(2\) dải màu: \([3, 3, 1, 0]\) và \([2, 2, 3, 0]\), hai dãy trên là tương đương vì ta có cách đánh số \(3\)->\(2\), \(1\)->\(3\) để từ dãy \(1\) ta thu được dãy \(2\).

Chưa kết thúc ở đó, có \(Q\) truy vấn làm thay đổi trạng thái của một ô trong dải. Cụ thể mỗi truy vấn là \([L, R]\) các ô có chỉ số thuộc đoạn này nếu đang có họa tiết thì trở nên không có họa tiết, và ngược lại.

Được biết dải lụa ban đầu không có màu và không có họa tiết. Hãy giúp Mitsuha tìm cách giải bài toán này nhé.

Input

  • Dòng đầu tiên chứa hai số nguyên dương \(N\), \(Q\) \((1 \leq N \leq 10^{18},\ 1 \leq Q \leq 10^5)\) --- số lượng ô trong dải và số lần cập nhật.
  • Mỗi dòng trong \(Q\) dòng tiếp theo chứa hai số nguyên dương \(L\) và \(R\) \((1 \leq L, R \leq N)\) --- mô tả đoạn cần cập nhật.

Output

  • In ra \(Q\) dòng, dòng thứ \(i\) chứa một số nguyên --- phần dư khi chia số cách tô hợp lệ cho \(10^9 + 7\).

Example

Test 1

Input
1 2
1 1
1 1
Output
1
3
Note

Giải thích cho test đầu tiên: Xem ô mang màu -1 nếu nó chứa họa tiết.
Ban đầu dãy là [0], sau truy vấn \(1\) thì dãy là [-1] (có 1 cách). Sau truy vấn \(2\), dãy là [0] khi đó có \(3\) cách \([0], [1], [-1]\).

Test 2

Input
3 2
2 2
1 3
Output
9
3

Test 3

Input
100 3
10 20
15 58
1 15
Output
318045953
998064805
390938541

Scoring

\begintabular|c|c|l|
\hline
Subtask & Điểm & Ràng buộc

\hline
1 & 30 & \(N, Q \leq 1000\)

2 & 30 & \(N \leq 10^5\)

3 & 40 & Không có ràng buộc bổ sung

\hline
\endtabular

root

Tổng hai số

100 điểm

Nhập vào hai số nguyên \(a\) và \(b\). In ra tổng \(a + b\).

Input

Một dòng chứa hai số nguyên \(a, b\).

Output

In ra một dòng chứa tổng \(a + b\).

Example

Test 1

Input
3 4
Output
7

root

Chụp ảnh

100 điểm

Tại một học viện đào tạo kỹ năng sống, có một lớp học đặc biệt gồm \(K\) học viên, mỗi học viên được đánh số từ \(1\) đến \(K\). Trong lớp học này, mỗi học viên có chiều cao khác nhau, không ai trùng chiều cao với ai.

Vào cuối khóa, cô giáo Linh quyết định tổ chức một buổi chụp ảnh kỷ niệm. Cô đã chuẩn bị một danh sách \(A_1, A_2, \dots, A_N\) biểu thị thứ tự các học viên trong bức ảnh từ trái sang phải. Điều đặc biệt là một học viên có thể xuất hiện nhiều lần trong danh sách \(A\), do cô muốn các học viên xuất hiện nhiều lần ở các vị trí khác nhau.

Cô Linh rất yêu thích sự cân đối, nên cô muốn kiểm tra xem liệu các học viên trong một đoạn bất kỳ của danh sách có thể sắp xếp thành một trình tự chiều cao "xuống - lên" thú vị hay không. Một trình tự được gọi là "xuống - lên" nếu chiều cao của các học viên trong đoạn đó thỏa mãn điều kiện:

  • \(h[A_x] > h[A_{x+1}] < h[A_{x+2}] > h[A_{x+3}] < \dots h[A_y]\),

    với \(h[i]\) là chiều cao của học viên \(i\).

\begincenter

\endcenter

Cô Linh có \(Q\) câu hỏi, mỗi câu hỏi yêu cầu kiểm tra một đoạn \([x, y]\) trong danh sách \(A\). Hãy giúp cô trả lời mỗi câu hỏi: liệu có dãy chiều cao nào có thể thỏa mãn "xuống - lên" hay không.

Input

  • Dòng đầu tiên chứa ba số nguyên \(N, K, Q\) \((1 \leq N, K \leq 3 \times 10^3, 1 \leq Q \leq 10^6)\): độ dài của danh sách, số lượng học viên và số lượng câu hỏi.
  • Dòng thứ hai chứa \(N\) số nguyên \(A_1, A_2, \dots, A_N\) \((1 \leq A_i \leq K)\): danh sách học viên.
  • \(Q\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(x, y\) \((1 \leq x <= y \leq N)\), biểu thị đoạn cần kiểm tra.

Output

  • Với mỗi câu hỏi, in ra YES nếu đoạn \([x, y]\) có thể sắp xếp thành trình tự "xuống - lên", ngược lại in ra NO.

Example

Test 1

Input
6 3 3
1 1 2 3 1 2
1 2
2 5
2 6
Output
NO
YES
NO

Scoring

  • Có 16% số điểm: \(2 \leq N \leq 3000\), \(K = 2\), \(1 \leq Q \leq 10^6\).
  • Có 24% số điểm: \(2 \leq N \leq 500\), \(2 \leq K \leq \min(N, 5)\), \(1 \leq Q \leq 10^6\).
  • Có 28% số điểm: \(2 \leq N \leq 3000\), \(2 \leq K \leq N\), \(1 \leq Q \leq 2000\).
  • 32% số điểm còn lại: \(2 \leq N \leq 3000\), \(2 \leq K \leq N\), \(1 \leq Q \leq 10^6\).
Xem thêm