| # | 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 |
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:
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 được cho từ đầu vào chuẩn:
Tất cả các giá trị đầu vào đều là số nguyên.
In ra \(Q\) dòng. Dòng thứ \(j\) chứa đáp án cho câu hỏi thứ \(j\).
Ví dụ 1
4
14
9
8
12
6
2
3
5
7
11
13
7
9
1
1
1
3
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
13
1
4
1
4
2
1
3
5
6
2
3
7
3
8
2
10
11
13
15
17
18
20
1
1
1
1
5
3
1
3
Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(2\), \(3\).
Ví dụ 3
16
536870912
402653184
536870912
536870912
134217728
536870912
671088640
536870912
536870912
536870912
939524096
805306368
536870912
956301312
536870912
536870912
5
2500000000
3355443201
4294967296
5111111111
6190792704
5
1
7
57
1
Ví dụ này thỏa mãn ràng buộc của các nhóm \(2\), \(3\).
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.
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:
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 đượ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.
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.
Ví dụ 1
3 3
19 4 5
2 6 2
18
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\):
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
2 1
9 7
2 6
7
Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(3\), \(5\).
Ví dụ 3
5 60000
630510219 369411957 874325200 990002527 567203997
438920902 634940661 593780254 315929832 420627496
41397427274960
Ví dụ này thỏa mãn ràng buộc của các nhóm \(3\), \(5\).
Ví dụ 4
4 25
1 2 3 4
1 2 3 4
48
Ví dụ này thỏa mãn ràng buộc của các nhóm \(2\), \(3\), \(4\), \(5\).
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.
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:
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 được cho từ đầu vào chuẩn:
Tất cả các giá trị đầu vào đều là số nguyên.
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ũ:
123, 0, -2022.. 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.
Ví dụ 1
3
3
1 5
2 3
4 5
5.500000000000000
Có thể nhận được phiếu của tất cả các bang trong \(5.5\) giờ như sau:
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
7
4
4 -1
11 -1
6 -1
12 -1
36 -1
11 -1
20 -1
32.000000000000000
Có thể nhận được phiếu của \(4\) bang trong \(32\) giờ như sau:
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
5
3
4 -1
5 -1
6 -1
7 7
8 8
11.500000000000000
Có thể nhận được phiếu của \(3\) bang trong \(11.5\) giờ như sau:
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
7
5
28 36
11 57
20 35
19 27
31 33
25 56
38 51
62.166666666666664
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
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
644.203571428571422
Ví dụ này thỏa mãn ràng buộc của các nhóm \(4\), \(5\), \(7\).
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.
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.
Có \(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:
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ể:
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 được cho từ đầu vào chuẩn:
Tất cả các giá trị đầu vào đều là số nguyên.
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\).
Ví dụ 1
5 2
2
5 1
3 5
3
5 3
3 2
2 1
1
2
-1
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
6 3
2
1 6
5 1
4
5 1
6 3
3 6
2 1
1
-1
1
2
Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(2\), \(6\).
Ví dụ 3
6 5
4
3 1
2 4
5 3
4 6
5
1 5
3 2
2 6
6 3
5 4
-1
1
2
-1
1
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
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
-1
1
4
-1
2
-1
1
Ví dụ này thỏa mãn ràng buộc của các nhóm \(1\), \(2\), \(5\), \(6\).
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.
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:
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 đượ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.
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.
Ví dụ 1
1 5
2 4 7 1 5
10
Ví dụ 2
3 2
18 10
19 12
17 13
15
Ví dụ 3
3 5
83 47 36 38 40
13 10 26 68 67
15 19 20 70 90
65
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.