| # | Bài tập | Điểm | Thời gian: | Giới hạn bộ nhớ |
|---|---|---|---|---|
| 1 | JOI 2010 - Receipt | 100 (p) | 1.0s | 256M |
| 2 | JOI 2010 - Board Game | 100 (p) | 1.0s | 256M |
| 3 | JOI 2010 - Party | 100 (p) | 1.0s | 256M |
| 4 | JOI 2010 - Card Arrangement | 100 (p) | 1.0s | 256M |
| 5 | JOI 2010 - Commuting Routes | 100 (p) | 1.0s | 256M |
| 6 | JOI 2010 - Directionally Challenged Reindeer | 100 (p) | 1.0s | 256M |
Taro đã mua \(10\) quyển sách. Một hôm sau đó, cậu muốn xem lại giá các quyển sách trên hóa đơn, nhưng hóa đơn bị bẩn khiến cậu không đọc được giá của một quyển. Cậu quyết định tính giá của quyển sách đó từ tổng giá của cả \(10\) quyển và giá của \(9\) quyển còn lại.
Giá của mỗi quyển sách đều là số nguyên dương. Không cần xét đến thuế tiêu dùng.
Hãy viết chương trình in ra giá của quyển sách có giá không đọc được trên hóa đơn.
Dữ liệu vào gồm \(10\) dòng, mỗi dòng chứa một số nguyên dương.
In ra một dòng chỉ chứa giá của quyển sách có giá không đọc được trên hóa đơn.
Ví dụ 1
9850
1050
800
420
380
600
820
2400
1800
980
600
JOI đang chơi trò chơi sugoroku một mình. Bàn chơi gồm \(N\) ô nằm trên một đường thẳng, mỗi ô có ghi một chỉ dẫn di chuyển. Ô thứ \(1\) là điểm xuất phát, còn ô thứ \(N\) là đích.
Cho đến khi về đích, JOI lặp lại thao tác sau: gieo xúc xắc, tiến từ ô hiện tại một số ô bằng số chấm gieo được, rồi thực hiện chỉ dẫn trên ô vừa đến. Sau khi di chuyển theo chỉ dẫn, JOI không thực hiện tiếp chỉ dẫn ở ô đến mới.
JOI được xem là về đích cả khi dừng đúng ở ô thứ \(N\) lẫn khi vị trí đến vượt quá ô thứ \(N\).
Cho bàn chơi và kết quả của \(M\) lần gieo xúc xắc. Hãy viết chương trình xác định JOI về đích sau bao nhiêu lần gieo xúc xắc.
Dữ liệu vào gồm \(1+N+M\) dòng.
\(N\) dòng tiếp theo, mỗi dòng chứa một số nguyên. Số nguyên ở dòng \(1+i\) (\(1\le i\le N\)) biểu diễn chỉ dẫn trên ô thứ \(i\). Gọi số nguyên này là \(X\):
\(M\) dòng tiếp theo, mỗi dòng chứa một số nguyên. Số ở dòng \(1+N+j\) (\(1\le j\le M\)) là số chấm trong lần gieo xúc xắc thứ \(j\).
In ra một dòng chỉ chứa một số nguyên là số lần gieo xúc xắc cho đến khi JOI về đích.
Ví dụ 1
10 5
0
0
5
6
-3
8
1
8
-4
0
1
3
5
1
5
5
Bạn quyết định mời những người bạn của mình trong trường và những người bạn của các bạn ấy đến dự tiệc Giáng sinh.
Trường của bạn có \(n\) học sinh, được đánh số từ \(1\) đến \(n\). Bạn là học sinh mang số \(1\). Bạn có một danh sách ghi lại những cặp học sinh là bạn của nhau.
Dựa vào danh sách đã cho, hãy viết chương trình tính số học sinh bạn sẽ mời đến dự tiệc Giáng sinh.
Dữ liệu vào gồm \(2+m\) dòng.
In ra một dòng chỉ chứa số học sinh bạn sẽ mời đến dự tiệc Giáng sinh.
Ví dụ 1
6
5
1 2
1 3
3 4
2 3
4 5
3
Bạn có hai người bạn là các học sinh mang số \(2\) và \(3\). Học sinh số \(3\) và học sinh số \(4\) là bạn của nhau, nên học sinh số \(4\) là bạn của một người bạn của bạn.
Các học sinh số \(5\) và \(6\) không phải là bạn của bạn, cũng không phải là bạn của những người bạn của bạn. Vì vậy, bạn mời ba học sinh mang số \(2,3,4\) đến dự tiệc Giáng sinh.
Ví dụ 2
6
5
2 3
3 4
4 5
5 6
2 5
0
Bạn không có người bạn nào. Vì vậy, số học sinh bạn mời đến dự tiệc Giáng sinh là \(0\).
Hanako đang chơi xếp \(n\) thẻ bài (\(4\le n\le 10\)). Trên mỗi thẻ có ghi một số nguyên từ \(1\) đến \(99\). Cô quyết định chọn \(k\) thẻ trong số đó (\(2\le k\le 4\)), rồi xếp thành một hàng ngang để tạo thành một số nguyên. Hanako có thể tạo ra tất cả bao nhiêu số nguyên khác nhau?
Ví dụ, xét \(5\) thẻ ghi các số \(1,2,3,13,21\) và chọn \(3\) thẻ để tạo một số nguyên. Xếp các thẻ \(2,1,13\) theo thứ tự này tạo ra số nguyên \(2113\). Xếp các thẻ \(21,1,3\) theo thứ tự này cũng tạo ra số nguyên \(2113\). Như vậy, những cách chọn thẻ khác nhau có thể tạo ra cùng một số nguyên.
Cho các số nguyên ghi trên \(n\) thẻ bài. Hãy viết chương trình tính số lượng số nguyên khác nhau có thể tạo ra bằng cách chọn \(k\) thẻ và xếp chúng thành một hàng ngang.
Dữ liệu vào gồm \(2+n\) dòng.
In ra một dòng chỉ chứa số lượng số nguyên khác nhau mà Hanako có thể tạo ra.
Ví dụ 1
4
2
1
2
12
1
7
Chọn \(2\) trong \(4\) thẻ ghi các số \(1,2,12,1\) rồi xếp thành một hàng ngang có thể tạo ra \(7\) số nguyên: \(11,12,21,112,121,122,212\).
Ví dụ 2
6
3
72
2
12
7
2
1
68
Thành phố ở Canada nơi JOI sinh sống được chia thành các ô bàn cờ bởi \(w\) con đường thẳng chạy theo hướng bắc–nam và \(h\) con đường thẳng chạy theo hướng đông–tây.
Các con đường theo hướng bắc–nam được đánh số \(1,2,\ldots,w\) từ tây sang đông. Các con đường theo hướng đông–tây được đánh số \(1,2,\ldots,h\) từ nam lên bắc. Ký hiệu \((i,j)\) là giao lộ giữa con đường bắc–nam thứ \(i\) tính từ phía tây và con đường đông–tây thứ \(j\) tính từ phía nam.
JOI sống gần giao lộ \((1,1)\) và lái xe đến công ty gần giao lộ \((w,h)\). Xe chỉ có thể di chuyển dọc theo các con đường. Để rút ngắn thời gian đi làm, JOI chỉ đi về phía đông hoặc phía bắc.
Để giảm tai nạn giao thông, thành phố có quy định sau:
Nói cách khác, sau khi rẽ tại một giao lộ, xe không được chỉ đi thêm một đoạn đường giữa hai giao lộ liên tiếp rồi lại rẽ. Với quy định này, JOI có bao nhiêu đường đi làm khác nhau?
Cho \(w\) và \(h\). Hãy viết chương trình in ra số dư khi chia số đường đi làm của JOI cho \(100\,000\).
Dữ liệu vào gồm một dòng chứa hai số nguyên \(w,h\), cách nhau bởi một dấu cách. \(w\) là số con đường theo hướng bắc–nam và \(h\) là số con đường theo hướng đông–tây.
In ra một dòng chỉ chứa số dư khi chia số đường đi làm của JOI cho \(100\,000\).
Ví dụ 1
3 4
5
Ví dụ 2
15 15
43688
JOI có \(143\,688\) đường đi làm. Vì vậy, in ra \(43\,688\), là số dư khi chia \(143\,688\) cho \(100\,000\).
Năm nay, ông già Noel lại bay đến thị trấn JOI. Mọi ngôi nhà trong thị trấn đều có trẻ em, nên ông phải đi phát quà đến tất cả các nhà. Tuy nhiên, chú tuần lộc đi cùng ông năm nay hơi kém định hướng và chỉ có thể hạ xuống trên các công trình, nên ông cần khéo léo lựa chọn đường đi để phát quà cho mọi nhà.
Thị trấn JOI được chia thành các ô theo các hướng đông, tây, nam, bắc. Mỗi ô là một ngôi nhà, một nhà thờ hoặc một khu đất trống. Trong thị trấn có đúng một nhà thờ. Ông già Noel và tuần lộc xuất phát từ nhà thờ, phát quà cho mỗi ngôi nhà đúng một lần rồi trở về nhà thờ, theo các quy tắc sau:
Cho cấu trúc của thị trấn. Hãy viết chương trình tính số đường đi mà ông già Noel và tuần lộc có thể sử dụng để phát quà.
Dữ liệu vào gồm \(n+1\) dòng.
Ký hiệu \((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 (\(1\le i\le n\), \(1\le j\le m\)). Giá trị thứ \(j\) trên dòng \(i+1\) mô tả ô \((i,j)\):
In ra một dòng chỉ chứa một số nguyên là số đường đi để phát quà.
Ví dụ 1
3 2
1 0 1
1 0 2
2