JOI 2022 - Vòng chung kết quốc gia

Bộ đề bài

# Bài tập Điểm Thời gian: Giới hạn bộ nhớ
1 JOI 2022 - Intercastellar 100 (p) 2.0s 512M
2 JOI 2022 - Self Study 100 (p) 1.0s 512M
3 JOI 2022 - Let's Win the Election 100 (p) 3.0s 1G
4 JOI 2022 - Railway Trip 2 100 (p) 2.0s 512M
5 JOI 2022 - Sandcastle 2 100 (p) 4.0s 1G

1. JOI 2022 - Intercastellar

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Vào năm 30XX, nhờ những bước tiến của khoa học và công nghệ, việc giao lưu giữa các hành tinh đã trở nên phổ biến. Hải ly Bitaro được bổ nhiệm làm đại sứ giới thiệu ẩm thực Trái Đất tới người ngoài hành tinh. Hôm nay, lúc 1 giờ chiều, cậu dự định khởi hành tới hành tinh JOI.

Món ăn được chuẩn bị để giới thiệu lần này là bánh castella đã cắt sẵn. Castella là một loại bánh xốp làm chủ yếu từ bột mì, trứng, đường và siro tinh bột. Bánh có dạng hình hộp chữ nhật dài theo chiều ngang và đã được cắt thành \(N\) miếng bằng các đường cắt dọc. Miếng thứ \(i\) tính từ trái sang phải (\(1 \le i \le N\)) có chiều dài \(A_i\).

Vừa mới đây, người ta phát hiện rằng cư dân hành tinh JOI ghét các số chẵn. Để giải quyết việc này, thao tác sau được lặp lại cho đến khi không còn miếng bánh nào có chiều dài chẵn:

  1. Chọn miếng ngoài cùng bên phải trong số các miếng có chiều dài chẵn.
  2. Gọi chiều dài miếng đã chọn là \(k\). Cắt dọc miếng này thành hai miếng dài \(\frac{k}{2}\), giữ nguyên vị trí tương đối của chúng và các miếng còn lại.

Bitaro chuẩn bị \(Q\) câu hỏi để kiểm tra xem các thao tác có được thực hiện đúng hay không. Câu hỏi thứ \(j\) (\(1 \le j \le Q\)) là: sau khi tất cả các thao tác kết thúc, miếng thứ \(X_j\) tính từ trái sang phải dài bao nhiêu?

Cho thông tin về các miếng bánh ban đầu và các câu hỏi, hãy trả lời từng câu hỏi.

Dữ liệu vào

Dữ liệu được cho từ đầu vào chuẩn:

  • Dòng đầu chứa số nguyên \(N\).
  • \(N\) dòng tiếp theo, dòng thứ \(i\) chứa \(A_i\).
  • Dòng tiếp theo chứa số nguyên \(Q\).
  • \(Q\) dòng tiếp theo, dòng thứ \(j\) chứa \(X_j\).

Tất cả các giá trị đầu vào đều là số nguyên.

Dữ liệu ra

In ra \(Q\) dòng. Dòng thứ \(j\) chứa đáp án cho câu hỏi thứ \(j\).

Ràng buộc

  • \(1 \le N \le 200\,000\).
  • \(1 \le A_i \le 1\,000\,000\,000\) với mọi \(1 \le i \le N\).
  • \(1 \le Q \le 200\,000\).
  • \(1 \le X_j \le 10^{15}\) với mọi \(1 \le j \le Q\).
  • \(X_j \le X_{j+1}\) với mọi \(1 \le j < Q\).
  • Sau khi tất cả các thao tác kết thúc, có ít nhất \(X_Q\) miếng bánh.

Phân nhóm

  • Nhóm 1 (25 điểm): \(A_i \le 8\) với mọi \(1 \le i \le N\).
  • Nhóm 2 (35 điểm): \(N \le 1000\), \(Q \le 1000\).
  • Nhóm 3 (40 điểm): Không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
4
14
9
8
12
6
2
3
5
7
11
13
Output
7
9
1
1
1
3
Note

Ban đầu, độ dài các miếng từ trái sang phải là \(14,9,8,12\). Sau khi tất cả các thao tác kết thúc, có \(15\) miếng với độ dài lần lượt là

\(7,7,9,1,1,1,1,1,1,1,1,3,3,3,3\).

Ví dụ này thỏa mãn ràng buộc của các nhóm \(2\), \(3\).

Ví dụ 2

Input
13
1
4
1
4
2
1
3
5
6
2
3
7
3
8
2
10
11
13
15
17
18
20
Output
1
1
1
1
5
3
1
3
Note

Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(2\), \(3\).

Ví dụ 3

Input
16
536870912
402653184
536870912
536870912
134217728
536870912
671088640
536870912
536870912
536870912
939524096
805306368
536870912
956301312
536870912
536870912
5
2500000000
3355443201
4294967296
5111111111
6190792704
Output
5
1
7
57
1
Note

Ví dụ này thỏa mãn ràng buộc của các nhóm \(2\), \(3\).

Nguồn

JOI 2021/2022, vòng chung kết, ngày 13/02/2022. Đề gốc của Ủy ban Olympic Tin học Nhật Bản: tiếng Nhật, tiếng Anh. Bản dịch theo giấy phép CC BY-SA 4.0.

2. JOI 2022 - Self Study

Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Trong học kỳ 3 của năm nhất tại trường trung học JOI, học sinh học \(N\) môn trong \(M\) tuần, từ tuần 1 đến tuần \(M\). Các môn được đánh số từ \(1\) đến \(N\). Mỗi tuần có \(N\) tiết học; tiết thứ \(i\) (\(1 \le i \le N\)) dạy môn \(i\).

Trong mỗi tiết trong tổng số \(N \times M\) tiết học, học sinh Bitaro có thể thực hiện một trong hai hành động:

  • Hành động 1: Tham dự tiết học theo thời khóa biểu. Nếu tham dự một tiết môn \(i\), mức độ hiểu biết của cậu về môn đó tăng \(A_i\).
  • Hành động 2: Không tham dự tiết học theo thời khóa biểu, mà tự chọn một môn bất kỳ để tự học. Nếu tự học môn \(i\) trong một tiết, mức độ hiểu biết của cậu về môn đó tăng \(B_i\).

Ban đầu, mức độ hiểu biết của Bitaro về mọi môn đều bằng \(0\). Sau giờ học, cậu muốn dành thời gian luyện lập trình thi đấu, nên không học thêm ngoài các tiết học này.

Khi học kỳ 3 kết thúc, Bitaro sẽ làm bài thi cuối kỳ. Cậu không muốn bị điểm thấp trong bài thi này, nên muốn mức độ hiểu biết của môn mà mình hiểu ít nhất tại thời điểm thi lớn nhất có thể.

Cho thời khóa biểu và lượng tăng mức độ hiểu biết, hãy tìm giá trị lớn nhất có thể của mức độ hiểu biết nhỏ nhất trong tất cả các môn khi kỳ thi diễn ra.

Dữ liệu vào

Dữ liệu được cho từ đầu vào chuẩn theo định dạng:

N M
A_1 A_2 ... A_N
B_1 B_2 ... B_N

Tất cả các giá trị đầu vào đều là số nguyên.

Dữ liệu ra

In ra một dòng chứa giá trị lớn nhất có thể của mức độ hiểu biết nhỏ nhất trong các môn khi kỳ thi diễn ra.

Ràng buộc

  • \(1 \le N \le 300\,000\).
  • \(1 \le M \le 1\,000\,000\,000\).
  • \(1 \le A_i \le 1\,000\,000\,000\) với mọi \(1 \le i \le N\).
  • \(1 \le B_i \le 1\,000\,000\,000\) với mọi \(1 \le i \le N\).

Phân nhóm

  • Nhóm 1 (10 điểm): \(M=1\).
  • Nhóm 2 (25 điểm): \(N \times M \le 300\,000\), \(A_i=B_i\) với mọi \(1 \le i \le N\).
  • Nhóm 3 (27 điểm): \(N \times M \le 300\,000\).
  • Nhóm 4 (29 điểm): \(A_i=B_i\) với mọi \(1 \le i \le N\).
  • Nhóm 5 (9 điểm): Không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
3 3
19 4 5
2 6 2
Output
18
Note

Chẳng hạn, Bitaro có thể học theo cách sau để mức độ hiểu biết của các môn \(1,2,3\) tại thời điểm thi lần lượt là \(19,18,19\):

  • Tiết 1 tuần 1: tự học môn 2.
  • Tiết 2 tuần 1: tự học môn 2.
  • Tiết 3 tuần 1: tham dự tiết học môn 3.
  • Tiết 1 tuần 2: tham dự tiết học môn 1.
  • Tiết 2 tuần 2: tự học môn 3.
  • Tiết 3 tuần 2: tham dự tiết học môn 3.
  • Tiết 1 tuần 3: tự học môn 3.
  • Tiết 2 tuần 3: tự học môn 2.
  • Tiết 3 tuần 3: tham dự tiết học môn 3.

Không có cách nào làm cho mức độ hiểu biết nhỏ nhất đạt ít nhất \(19\), nên đáp án là \(18\).

Ví dụ này thỏa mãn ràng buộc của các nhóm \(3\), \(5\).

Ví dụ 2

Input
2 1
9 7
2 6
Output
7
Note

Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(3\), \(5\).

Ví dụ 3

Input
5 60000
630510219 369411957 874325200 990002527 567203997
438920902 634940661 593780254 315929832 420627496
Output
41397427274960
Note

Ví dụ này thỏa mãn ràng buộc của các nhóm \(3\), \(5\).

Ví dụ 4

Input
4 25
1 2 3 4
1 2 3 4
Output
48
Note

Ví dụ này thỏa mãn ràng buộc của các nhóm \(2\), \(3\), \(4\), \(5\).

Nguồn

JOI 2021/2022, vòng chung kết, ngày 13/02/2022. Đề gốc của Ủy ban Olympic Tin học Nhật Bản: tiếng Nhật, tiếng Anh. Bản dịch theo giấy phép CC BY-SA 4.0.

3. JOI 2022 - Let's Win the Election

Điểm: 100 (p) Thời gian: 3.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Nước JOI gồm \(N\) bang được đánh số từ \(1\) đến \(N\). Năm 2022, nước này tổ chức bầu cử tổng thống. Việc bỏ phiếu được thực hiện tại từng bang; ứng viên thắng tại một bang sẽ nhận được một phiếu bầu được phân bổ cho bang đó.

Rie là một ứng viên tổng thống. Để giành chiến thắng, cô quyết định đi diễn thuyết tại các bang. Việc diễn thuyết đem lại những kết quả sau:

  • Khi tổng thời gian diễn thuyết tại bang \(i\) đạt \(A_i\) giờ, cô nhận được phiếu bầu của bang đó.
  • Khi tổng thời gian diễn thuyết tại bang \(i\) đạt \(B_i\) giờ, cô có thêm một cộng tác viên từ bang đó. Cộng tác viên cũng có thể diễn thuyết, giúp tăng tổng thời gian diễn thuyết. Tuy nhiên, một số bang không cung cấp cộng tác viên dù diễn thuyết bao lâu; khi đó, đầu vào cho \(B_i=-1\). Mỗi bang có nhiều nhất một cộng tác viên có thể tham gia.

Cộng tác viên đến từ bang \(i\) có thể diễn thuyết tại bất kỳ bang nào. Trong một bang, nhiều người có thể diễn thuyết đồng thời, và thời gian của tất cả những người đó được cộng lại. Ví dụ, nếu hai người cùng diễn thuyết trong \(x\) giờ, tổng thời gian diễn thuyết tại bang đó tăng \(2x\) giờ. Thời gian diễn thuyết không nhất thiết là số nguyên. Thời gian di chuyển giữa các bang nhỏ đến mức có thể bỏ qua.

Ngày bầu cử đã đến gần, nên Rie muốn nhận được phiếu bầu của \(K\) bang nhanh nhất có thể. Cho thông tin về các bang, hãy tính thời gian ngắn nhất cần thiết để nhận được phiếu bầu của \(K\) bang.

Dữ liệu vào

Dữ liệu được cho từ đầu vào chuẩn:

  • Dòng đầu chứa \(N\).
  • Dòng thứ hai chứa \(K\).
  • \(N\) dòng tiếp theo, dòng thứ \(i\) chứa hai số nguyên \(A_i\)\(B_i\).

Tất cả các giá trị đầu vào đều là số nguyên.

Dữ liệu ra

In ra một dòng chứa thời gian ngắn nhất, tính bằng giờ, để nhận được phiếu bầu của \(K\) bang. Đáp án được chấp nhận nếu sai số tuyệt đối không vượt quá \(0.01\).

Chỉ được dùng một trong các cách viết sau, không dùng ký hiệu số mũ:

  • Số nguyên, chẳng hạn 123, 0, -2022.
  • Một số nguyên, dấu chấm . và một dãy chữ số từ 0 đến 9, viết liền nhau không có khoảng trắng. Không giới hạn số chữ số sau dấu chấm thập phân. Ví dụ: 123.4, -123.00, 0.00288.

Các dạng như 1.23456e+05 hoặc 1.23456e5 không được phép.

Ràng buộc

  • \(1 \le N \le 500\).
  • \(1 \le K \le N\).
  • \(1 \le A_i \le 1000\) với mọi \(1 \le i \le N\).
  • Với mỗi \(1 \le i \le N\), hoặc \(A_i \le B_i \le 1000\), hoặc \(B_i=-1\).

Phân nhóm

  • Nhóm 1 (5 điểm): \(B_i=-1\) với mọi \(1 \le i \le N\).
  • Nhóm 2 (5 điểm): \(B_i=-1\) hoặc \(B_i=A_i\) với mọi \(1 \le i \le N\).
  • Nhóm 3 (11 điểm): \(N \le 7\).
  • Nhóm 4 (12 điểm): \(N \le 20\).
  • Nhóm 5 (33 điểm): \(N \le 100\).
  • Nhóm 6 (11 điểm): \(K=N\).
  • Nhóm 7 (23 điểm): Không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
3
3
1 5
2 3
4 5
Output
5.500000000000000
Note

Có thể nhận được phiếu của tất cả các bang trong \(5.5\) giờ như sau:

  1. Rie diễn thuyết tại bang 2 trong \(2\) giờ và nhận được phiếu của bang này.
  2. Rie diễn thuyết thêm \(1\) giờ tại bang 2 và có được một cộng tác viên.
  3. Rie và cộng tác viên cùng diễn thuyết tại bang 3 trong \(2\) giờ và nhận được phiếu của bang này.
  4. Rie và cộng tác viên cùng diễn thuyết tại bang 1 trong \(0.5\) giờ và nhận được phiếu của bang này.

Ví dụ này thỏa mãn ràng buộc của các nhóm \(3\), \(4\), \(5\), \(6\), \(7\).

Ví dụ 2

Input
7
4
4 -1
11 -1
6 -1
12 -1
36 -1
11 -1
20 -1
Output
32.000000000000000
Note

Có thể nhận được phiếu của \(4\) bang trong \(32\) giờ như sau:

  1. Rie diễn thuyết tại bang 1 trong \(4\) giờ và nhận được phiếu của bang này.
  2. Rie diễn thuyết tại bang 2 trong \(11\) giờ và nhận được phiếu của bang này.
  3. Rie diễn thuyết tại bang 3 trong \(6\) giờ và nhận được phiếu của bang này.
  4. Rie diễn thuyết tại bang 6 trong \(11\) giờ và nhận được phiếu của bang này.

Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(2\), \(3\), \(4\), \(5\), \(7\).

Ví dụ 3

Input
5
3
4 -1
5 -1
6 -1
7 7
8 8
Output
11.500000000000000
Note

Có thể nhận được phiếu của \(3\) bang trong \(11.5\) giờ như sau:

  1. Rie diễn thuyết tại bang 4 trong \(7\) giờ, nhận được phiếu của bang này và một cộng tác viên.
  2. Rie diễn thuyết tại bang 1 trong \(4\) giờ và nhận được phiếu của bang này. Đồng thời, cộng tác viên diễn thuyết tại bang 2 trong \(4\) giờ.
  3. Rie và cộng tác viên cùng diễn thuyết tại bang 2 trong \(0.5\) giờ và nhận được phiếu của bang này.

Ví dụ này thỏa mãn ràng buộc của các nhóm \(2\), \(3\), \(4\), \(5\), \(7\).

Ví dụ 4

Input
7
5
28 36
11 57
20 35
19 27
31 33
25 56
38 51
Output
62.166666666666664
Note

Ví dụ này thỏa mãn ràng buộc của các nhóm \(3\), \(4\), \(5\), \(7\).

Ví dụ 5

Input
20
14
106 277
175 217
170 227
164 245
118 254
139 261
142 270
185 200
162 241
153 239
128 264
103 299
147 248
158 236
160 232
183 205
194 197
135 260
153 234
128 260
Output
644.203571428571422
Note

Ví dụ này thỏa mãn ràng buộc của các nhóm \(4\), \(5\), \(7\).

Nguồn

JOI 2021/2022, vòng chung kết, ngày 13/02/2022. Đề gốc của Ủy ban Olympic Tin học Nhật Bản: tiếng Nhật, tiếng Anh. Bản dịch theo giấy phép CC BY-SA 4.0.

4. JOI 2022 - Railway Trip 2

Điểm: 100 (p) Thời gian: 2.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Công ty Đường sắt IOI vận hành một tuyến đường sắt thẳng có \(N\) ga, được đánh số từ \(1\) đến \(N\). Với mỗi \(1 \le i < N\), ga \(i\) và ga \(i+1\) được nối bằng đường ray.

\(M\) tuyến tàu được đánh số từ \(1\) đến \(M\). Tàu của tuyến \(j\) (\(1 \le j \le M\)) xuất phát tại ga \(A_j\), đi tới ga cuối \(B_j\) và dừng tại mọi ga trên đường đi:

  • Nếu \(A_j < B_j\), tàu lần lượt dừng ở \(A_j,A_j+1,\ldots,B_j\).
  • Nếu \(A_j > B_j\), tàu lần lượt dừng ở \(A_j,A_j-1,\ldots,B_j\).

JOI đang cân nhắc \(Q\) kế hoạch du lịch. Trong kế hoạch thứ \(k\) (\(1 \le k \le Q\)), cậu muốn đi từ ga \(S_k\) tới ga \(T_k\) bằng một số tuyến tàu.

Tuy nhiên, JOI đã mệt sau một hành trình dài và muốn lên một chuyến tàu vắng để có chỗ ngồi. Vì vậy, JOI chỉ lên tàu tại một trong \(K\) ga đầu tiên tính cả ga xuất phát, và không lên tàu tại ga cuối. Cụ thể:

  • Nếu \(A_j < B_j\), cậu có thể lên tuyến \(j\) tại \(A_j,A_j+1,\ldots,\min(A_j+K-1,B_j-1)\).
  • Nếu \(A_j > B_j\), cậu có thể lên tuyến \(j\) tại \(A_j,A_j-1,\ldots,\max(A_j-K+1,B_j+1)\).

Sau khi lên tàu, JOI có thể xuống tại bất kỳ ga nào từ ga kế tiếp theo hướng chạy đến ga cuối, kể cả ga cuối.

JOI muốn hạn chế việc đổi tàu. Với mỗi kế hoạch, hãy tìm số chuyến tàu ít nhất mà cậu phải lên để hoàn thành kế hoạch đó.

Dữ liệu vào

Dữ liệu được cho từ đầu vào chuẩn:

  • Dòng đầu chứa \(N\)\(K\).
  • Dòng thứ hai chứa \(M\).
  • \(M\) dòng tiếp theo, dòng thứ \(j\) chứa \(A_j\)\(B_j\).
  • Dòng tiếp theo chứa \(Q\).
  • \(Q\) dòng tiếp theo, dòng thứ \(k\) chứa \(S_k\)\(T_k\).

Tất cả các giá trị đầu vào đều là số nguyên.

Dữ liệu ra

In ra \(Q\) dòng. Dòng thứ \(k\) chứa số chuyến tàu ít nhất mà JOI phải lên để hoàn thành kế hoạch thứ \(k\). Nếu không thể hoàn thành kế hoạch đó, in ra \(-1\).

Ràng buộc

  • \(2 \le N \le 100\,000\).
  • \(1 \le K \le N-1\).
  • \(1 \le M \le 200\,000\).
  • \(1 \le A_j,B_j \le N\)\(A_j \ne B_j\) với mọi \(1 \le j \le M\).
  • \((A_j,B_j) \ne (A_k,B_k)\) với mọi \(1 \le j < k \le M\).
  • \(1 \le Q \le 50\,000\).
  • \(1 \le S_k,T_k \le N\)\(S_k \ne T_k\) với mọi \(1 \le k \le Q\).
  • \((S_k,T_k) \ne (S_l,T_l)\) với mọi \(1 \le k < l \le Q\).

Phân nhóm

  • Nhóm 1 (8 điểm): \(N \le 300\), \(M \le 300\), \(Q \le 300\).
  • Nhóm 2 (8 điểm): \(N \le 2000\), \(M \le 2000\), \(Q \le 2000\).
  • Nhóm 3 (11 điểm): \(Q=1\).
  • Nhóm 4 (25 điểm): \(K=N-1\).
  • Nhóm 5 (35 điểm): \(A_j < B_j\) với mọi \(1 \le j \le M\), và \(S_k < T_k\) với mọi \(1 \le k \le Q\).
  • Nhóm 6 (13 điểm): Không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
5 2
2
5 1
3 5
3
5 3
3 2
2 1
Output
1
2
-1
Note

Kế hoạch 1 đi từ ga 5 tới ga 3. JOI có thể lên tuyến 1 tại ga 5 rồi xuống ở ga 3. Cách này dùng \(1\) chuyến tàu, và không thể dùng ít hơn, nên dòng đầu là \(1\).

Kế hoạch 2 đi từ ga 3 tới ga 2. JOI có thể lên tuyến 2 tại ga 3, xuống ở ga 4, rồi lên tuyến 1 tại ga 4 và xuống ở ga 2. Cách này dùng \(2\) chuyến tàu, và không thể dùng ít hơn, nên dòng thứ hai là \(2\). Lưu ý rằng không thể lên tuyến 1 tại ga 3.

Kế hoạch 3 đi từ ga 2 tới ga 1. Không thể hoàn thành kế hoạch này, nên dòng thứ ba là \(-1\).

Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(2\), \(6\).

Ví dụ 2

Input
6 3
2
1 6
5 1
4
5 1
6 3
3 6
2 1
Output
1
-1
1
2
Note

Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(2\), \(6\).

Ví dụ 3

Input
6 5
4
3 1
2 4
5 3
4 6
5
1 5
3 2
2 6
6 3
5 4
Output
-1
1
2
-1
1
Note

Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(2\), \(4\), \(6\).

Ví dụ 4

Input
12 1
5
1 7
10 12
3 5
8 10
5 9
7
2 11
5 8
3 12
4 6
1 9
9 10
1 4
Output
-1
1
4
-1
2
-1
1
Note

Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(2\), \(5\), \(6\).

Nguồn

JOI 2021/2022, vòng chung kết, ngày 13/02/2022. Đề gốc của Ủy ban Olympic Tin học Nhật Bản: tiếng Nhật, tiếng Anh. Bản dịch theo giấy phép CC BY-SA 4.0.

5. JOI 2022 - Sandcastle 2

Điểm: 100 (p) Thời gian: 4.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

JOI đang chơi xây lâu đài cát trên bãi biển. Lâu đài nằm trong một vùng hình chữ nhật trên cát. Vùng này được biểu diễn bằng một lưới có \(H\) hàng và \(W\) cột: các hàng được đánh số từ bắc xuống nam, các cột từ tây sang đông. Ô ở hàng \(i\) (\(1 \le i \le H\)), cột \(j\) (\(1 \le j \le W\)) có độ cao \(A_{i,j}\). Độ cao của tất cả các ô đôi một khác nhau.

Trên lâu đài cát này, JOI thực hiện các hành động sau:

  1. Chọn một ô bất kỳ làm điểm xuất phát.
  2. Từ ô hiện tại, di chuyển tới một ô kề cạnh theo một trong bốn hướng đông, tây, nam, bắc có độ cao nhỏ hơn. Lặp lại hành động này không hoặc nhiều lần.

Sau cùng, khi nhìn từ trên xuống, toàn bộ các ô mà JOI đã ghé qua tạo thành đúng một vùng hình chữ nhật.

Cho độ cao của các ô, hãy đếm số vùng hình chữ nhật khác nhau có thể là tập hợp các ô JOI đã ghé qua.

Dữ liệu vào

Dữ liệu được cho từ đầu vào chuẩn theo định dạng:

H W
A_{1,1} A_{1,2} ... A_{1,W}
A_{2,1} A_{2,2} ... A_{2,W}
...
A_{H,1} A_{H,2} ... A_{H,W}

Tất cả các giá trị đầu vào đều là số nguyên.

Dữ liệu ra

In ra một dòng chứa số vùng hình chữ nhật khác nhau có thể là tập hợp các ô mà JOI đã ghé qua.

Ràng buộc

  • \(H \ge 1\).
  • \(W \ge 1\).
  • \(H \times W \le 50\,000\).
  • \(1 \le A_{i,j} \le 10\,000\,000\) với mọi \(1 \le i \le H\), \(1 \le j \le W\).
  • \(A_{i_1,j_1} \ne A_{i_2,j_2}\) với mọi hai ô phân biệt \((i_1,j_1) \ne (i_2,j_2)\).

Phân nhóm

  • Nhóm 1 (9 điểm): \(H=1\).
  • Nhóm 2 (10 điểm): \(H \times W \le 100\).
  • Nhóm 3 (5 điểm): \(H \times W \le 1500\).
  • Nhóm 4 (56 điểm): \(H \times W \le 7000\).
  • Nhóm 5 (20 điểm): Không có ràng buộc bổ sung.

Ví dụ

Ví dụ 1

Input
1 5
2 4 7 1 5
Output
10
Note

\(10\) vùng hình chữ nhật có thể là tập hợp các ô JOI đã ghé qua, như hình dưới đây, nên đáp án là \(10\).

Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(2\), \(3\), \(4\), \(5\).

Ví dụ 2

Input
3 2
18 10
19 12
17 13
Output
15
Note

\(15\) vùng hình chữ nhật có thể là tập hợp các ô JOI đã ghé qua, như hình dưới đây, nên đáp án là \(15\).

Ví dụ này thỏa mãn ràng buộc của các nhóm \(2\), \(3\), \(4\), \(5\).

Ví dụ 3

Input
3 5
83 47 36 38 40
13 10 26 68 67
15 19 20 70 90
Output
65
Note

Chẳng hạn, ba vùng hình chữ nhật dưới đây đều có thể xuất hiện. Tính cả những vùng khác, có tổng cộng \(65\) vùng, nên đáp án là \(65\).

Ví dụ này thỏa mãn ràng buộc của các nhóm \(2\), \(3\), \(4\), \(5\).

Nguồn

JOI 2021/2022, vòng chung kết, ngày 13/02/2022. Đề gốc của Ủy ban Olympic Tin học Nhật Bản: tiếng Nhật, tiếng Anh. Bản dịch theo giấy phép CC BY-SA 4.0.