| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | JOI 2009 - Time Card | 100 (p) | 5.0s | 256M |
| 2 | JOI 2009 - Contest | 100 (p) | 5.0s | 256M |
| 3 | JOI 2009 - Chain | 100 (p) | 5.0s | 256M |
| 4 | JOI 2009 - Thin Ice | 100 (p) | 5.0s | 256M |
| 5 | JOI 2009 - Shuffle | 100 (p) | 5.0s | 256M |
| 6 | JOI 2009 - Bingo | 100 (p) | 5.0s | 256M |
Công ty JOI dùng thẻ chấm công để quản lý thời gian nhân viên có mặt tại công ty. Khi đến làm và khi ra về, mỗi nhân viên dùng một thiết bị chuyên dụng để ghi thời điểm tương ứng lên thẻ. Các thời điểm được biểu diễn theo hệ 24 giờ.
Vì lý do an ninh, nhân viên đến công ty từ 7 giờ trở đi và đều ra về trước 23 giờ. Thời điểm ra về luôn sau thời điểm đến trong cùng ngày.
Cho thời điểm đến và thời điểm ra về của ba nhân viên \(A\), \(B\), \(C\). Hãy tính thời gian có mặt tại công ty của từng người.
Đọc từ đầu vào chuẩn ba dòng, lần lượt tương ứng với nhân viên \(A\), \(B\), \(C\).
Mỗi dòng chứa sáu số nguyên, cách nhau bởi dấu cách: ba số đầu biểu diễn thời điểm đến, ba số sau biểu diễn thời điểm ra về. Mỗi thời điểm được viết dưới dạng \(h\ m\ s\), nghĩa là \(h\) giờ \(m\) phút \(s\) giây.
Ghi ra đầu ra chuẩn ba dòng, lần lượt là thời gian có mặt tại công ty của \(A\), \(B\), \(C\).
Nếu thời gian đó là \(h\) giờ \(m\) phút \(s\) giây, ghi ba số nguyên \(h\), \(m\), \(s\) theo thứ tự này, cách nhau bởi dấu cách; số phút và số giây đều nằm trong khoảng từ \(0\) đến \(59\).
Ví dụ 1
9 0 0 18 0 0
9 0 1 18 0 0
12 14 52 12 15 30
9 0 0
8 59 59
0 0 38
Một cuộc thi lập trình trực tuyến vừa được tổ chức. Câu lạc bộ tin học của hai trường đại học \(W\) và \(K\) vốn là đối thủ của nhau, nên quyết định dùng kết quả cuộc thi này để phân định thắng thua.
Mỗi trường có \(10\) người tham gia. Sau một cuộc thảo luận dài, hai bên thống nhất lấy tổng điểm của ba người có điểm cao nhất trong mỗi trường làm điểm của trường đó.
Cho điểm của các thí sinh thuộc hai trường \(W\) và \(K\). Hãy tính điểm của từng trường.
Đọc từ đầu vào chuẩn \(20\) dòng, mỗi dòng chứa một số nguyên:
Ghi ra đầu ra chuẩn một dòng chứa điểm của trường \(W\), rồi đến điểm của trường \(K\), cách nhau bởi một dấu cách.
Ví dụ 1
23
23
20
15
15
14
13
9
7
6
25
19
17
17
16
13
12
11
9
5
66 61
Ví dụ 2
17
25
23
25
79
29
1
61
59
100
44
74
94
57
13
54
82
0
42
45
240 250
Có \(N\) nhân vật xếp thành một cột từ trên xuống dưới. Mỗi nhân vật có một trong ba màu: đỏ, xanh lam hoặc vàng. Ban đầu, không có từ bốn nhân vật cùng màu trở lên đứng liên tiếp.
Người chơi chọn đúng một nhân vật và đổi màu của nhân vật đó thành một trong hai màu còn lại. Nếu thao tác này tạo ra một nhóm gồm ít nhất bốn nhân vật cùng màu liên tiếp, toàn bộ nhóm đó biến mất. Các nhân vật còn lại khép lại chỗ trống và giữ nguyên thứ tự tương đối. Nếu khi đó lại xuất hiện một nhóm gồm ít nhất bốn nhân vật cùng màu liên tiếp, nhóm này cũng biến mất. Phản ứng dây chuyền tiếp tục cho đến khi không còn nhóm nào như vậy.
Mục tiêu của trò chơi là làm cho số nhân vật còn lại nhỏ nhất có thể.
Cho màu của \(N\) nhân vật theo thứ tự ban đầu. Hãy tìm số nhân vật còn lại nhỏ nhất \(M\) sau khi đổi màu đúng một nhân vật và để phản ứng dây chuyền kết thúc.
Đọc từ đầu vào chuẩn:
Ghi ra đầu ra chuẩn một số nguyên \(M\), là số nhân vật còn lại nhỏ nhất.
Bài có \(4\) bộ dữ liệu chấm, mỗi bộ \(5\) điểm, tổng cộng \(20\) điểm.
Ví dụ 1
12
3
2
1
1
2
3
2
2
2
1
1
3
3
Đổi màu nhân vật thứ \(6\) từ trên xuống từ vàng thành xanh lam. Khi đó, năm nhân vật xanh lam liên tiếp biến mất. Tiếp theo, bốn nhân vật đỏ trở thành liên tiếp và cũng biến mất. Cuối cùng còn lại ba nhân vật.
Ví dụ 2
12
3
2
1
1
2
3
2
1
3
2
1
3
12
Vào một ngày đông lạnh giá, JOI Taro quyết định chơi trò đập lớp băng mỏng phủ trên một quảng trường. Quảng trường có dạng hình chữ nhật, được chia thành \(m\) cột theo hướng đông–tây và \(n\) hàng theo hướng bắc–nam, tạo thành \(m\times n\) ô. Một số ô có băng mỏng, những ô khác không có băng.
Taro di chuyển và đập băng theo các quy tắc sau:
Hãy tìm số ô lớn nhất mà Taro có thể đi qua trong một lượt chơi, tính cả ô bắt đầu.
Đọc từ đầu vào chuẩn \(n+2\) dòng:
Gọi \((i,j)\) là ô ở hàng thứ \(i\) tính từ phía bắc và cột thứ \(j\) tính từ phía tây. Số thứ \(j\) trên dòng thứ \(i+2\) bằng \(1\) nếu ô \((i,j)\) có băng, và bằng \(0\) nếu ô đó không có băng.
Ghi ra đầu ra chuẩn một số nguyên, là số ô lớn nhất có thể đi qua.
Ví dụ 1
3
3
1 1 0
1 0 1
1 1 0
5
Ví dụ 2
5
3
1 1 1 0 1
1 1 0 0 0
1 0 0 0 1
5
Năm hình sau minh họa một đường đi qua năm ô băng của ví dụ 2, theo thứ tự từng bước:
Có \(n\) lá bài được đánh số từ \(1\) đến \(n\). Ban đầu, các lá bài được xếp thành một chồng theo thứ tự từ trên xuống dưới là \(1,2,\ldots,n\).
Thao tác xáo bài \((x,y)\), với \(1\le x<y<n\), được thực hiện như sau:
Chẳng hạn, nếu chồng bài ban đầu có \(9\) lá, sau thao tác xáo bài \((3,5)\), thứ tự các lá từ trên xuống dưới là \(6,7,8,9,4,5,1,2,3\).
Thực hiện lần lượt \(m\) thao tác xáo bài \((x_1,y_1),(x_2,y_2),\ldots,(x_m,y_m)\) từ trạng thái ban đầu. Trong chồng bài cuối cùng, hãy đếm số lá có số hiệu không vượt quá \(r\) nằm ở các vị trí từ \(p\) đến \(q\), tính cả hai đầu và đếm từ trên xuống dưới.
Đọc từ đầu vào chuẩn \(m+3\) dòng:
Ghi ra đầu ra chuẩn một số nguyên, là số lá bài có số hiệu không vượt quá \(r\) nằm ở các vị trí từ \(p\) đến \(q\) sau tất cả các thao tác.
Ví dụ 1
9
1
3 7 4
3 5
2
Sau thao tác xáo bài \((3,5)\), thứ tự các lá bài từ trên xuống dưới là \(6,7,8,9,4,5,1,2,3\). Trong các vị trí từ \(3\) đến \(7\), có hai lá có số hiệu không vượt quá \(4\): lá số \(4\) và lá số \(1\).
Ví dụ 2
12
3
3 8 5
3 8
2 5
6 10
3
Sau ba thao tác, thứ tự các lá bài từ trên xuống dưới là \(9,10,3,11,12,4,5,6,7,8,1,2\). Trong các vị trí từ \(3\) đến \(8\), có ba lá có số hiệu không vượt quá \(5\).
Một cuộc thi lập trình có truyền thống tổ chức trò chơi bingo trong buổi giao lưu sau cuộc thi. Những tấm thẻ bingo dùng trong trò chơi này khá đặc biệt và phải thỏa mãn tất cả các điều kiện sau:
Ban tổ chức muốn làm nhiều thẻ thỏa mãn các điều kiện trên nhất có thể, nhưng không được làm hai thẻ giống hệt nhau.
Cho \(N\), \(M\), \(S\). Hãy tính số thẻ bingo khác nhau có thể tạo ra và in phần dư của số đó khi chia cho \(100\,000\).
Đọc từ đầu vào chuẩn một dòng chứa ba số nguyên dương \(N\), \(M\), \(S\), cách nhau bởi dấu cách. Trong đó, \(N\) là kích thước thẻ, \(M\) là giới hạn trên của các số trên thẻ, và \(S\) là tổng các số trên thẻ.
Ghi ra đầu ra chuẩn một số nguyên, là phần dư của số thẻ bingo khác nhau có thể tạo ra khi chia cho \(100\,000\).
Bài có \(4\) bộ dữ liệu chấm, mỗi bộ \(5\) điểm, tổng cộng \(20\) điểm.
Ví dụ 1
3 9 45
1
Ví dụ 2
3 100 50
7
Ví dụ 3
5 50 685
74501
Có \(642\,499\,974\,501\) thẻ khác nhau thỏa mãn dữ liệu của ví dụ \(3\). Phần dư khi chia số này cho \(100\,000\) là \(74501\).