Thời gian làm bài 150 phút Sử dụng ngôn ngữ lập trình Pascal để lập trình giải các bài toán sau: Trong mặt phẳng toạ độ Oxy, một hình chữ nhật có các cạnh song song với hai trục toạ độ đ
Trang 1HỘI THI TIN HỌC TRẺ TỈNH QUẢNG BÌNH LẦN THỨ IX
ĐỀ THI CHÍNH THỨC - BẢNG C - THPT
Ngày thi 16/07/2008 Thời gian làm bài 150 phút
Sử dụng ngôn ngữ lập trình Pascal để lập trình giải các bài toán sau:
Trong mặt phẳng toạ độ Oxy, một hình chữ nhật có các cạnh song song với hai trục toạ độ được xác định bởi hai đỉnh là góc dưới trái và góc trên phải Mỗi đỉnh là một cặp số (x,y), trong đó x là hoành độ và y là tung độ
Hình chữ nhật A được gọi là bao hình chữ nhật B nếu hình chữ nhật B nằm trong hình chữ nhật A (kể cả nằm trên cạnh)
Ví dụ: Với hình chữ nhật A có các đỉnh: (0,0) và (6,7); hình chữ nhật B có
các đỉnh: (1,0) và (5,6) Khi đó, ta nói hình chữ nhật A bao hình chữ nhật B
Trong mặt phẳng toạ độ Oxy, cho N hình chữ nhật được xác định như trên
Yêu cầu: Tìm một hình chữ nhật nhỏ nhất bao tất cả N hình chữ nhật đã cho.
Dữ liệu vào: Cho trong file văn bản CNBAO.INP, có cấu trúc:
Dòng 1: Ghi số nguyên dương N, là số lượng hình chữ nhật (1 ≤ N ≤ 100)
N dòng tiếp theo: Mỗi dòng ghi 4 số nguyên x1 y1 x2 y2, lần lượt là hoành độ và tung độ của góc dưới trái và góc trên phải của một hình chữ nhật Các số được ghi cách nhau ít nhất một dấu cách
Dữ liệu ra: Ghi ra file văn bản CNBAO.OUT, theo cấu trúc:
Dòng 1: Ghi 4 số nguyên u1 v1 u2 v2, lần lượt là hoành độ và tung độ của góc dưới trái và góc trên phải của hình chữ nhật tìm được Các số phải ghi cách nhau ít nhất một dấu cách
Ví dụ:
2
1 2 5 7
3 1 8 3
1 1 8 7
Với một dãy số nguyên S = s1, s2, , sn, ta nói dãy số S là dãy phân biệt nếu với ∀ i, j ∈ 1 n và i ≠ j thì si ≠ sj
Ví dụ: Dãy số S = 1 4 2 6 7 là một dãy phân biệt.
Dãy số T = 1 5 2 6 2 không phải là dãy phân biệt
Cho một dãy số nguyên gồm N phần tử
Yêu cầu: Lược bỏ một số phần tử của dãy để thu được một dãy phân biệt có nhiều
phần tử nhất In kết quả theo thứ tự giá trị tăng dần
Dữ liệu vào: Cho trong file văn bản DAYPB.INP, có cấu trúc:
Dòng 1: Ghi số nguyên dương N, là số lượng phần tử của dãy (1≤N≤32767)
Trang 2Dòng 2: Ghi N số nguyên ai (1≤ ai ≤32767), là giá trị của các phần tử thuộc dãy Các số được ghi cách nhau ít nhất một dấu cách
Dữ liệu ra: Ghi ra file văn bản DAYPB.OUT, theo cấu trúc:
Dòng 1: Ghi số nguyên dương M, là số lượng phần tử của dãy sau khi đã lược bỏ Dòng 2: Ghi M số nguyên là giá trị của M phần tử thuộc dãy sau khi đã lược bỏ.
Các số phải được ghi cách nhau ít nhất một dấu cách
Ví dụ:
6
0 8 3 2 3 2
4
0 2 3 8
Cổng vào Trung tâm thanh thiếu nhi có một hàng cây gồm N cây cảnh Hàng cây được đánh số từ 1 đến N tính từ ngoài vào trong Ban quản lí Trung tâm đã đo được cây thứ i có độ cao là hi Để cho đẹp, hàng cây phải có độ cao tăng dần tính
từ ngoài cổng vào (cây phía ngoài phải thấp hơn cây phía trong) Vì vậy, Ban quản
lí Trung tâm quyết định chặt bỏ đi những cây có độ cao không phù hợp và giữ nguyên vị trí các cây còn lại để được một hàng cây có độ cao tăng dần
Yêu cầu: Tìm cách loại bỏ đi một số cây sao cho số cây còn lại là nhiều nhất và
hàng cây có độ cao tăng dần
Dữ liệu vào: Cho trong file văn bản HANGCAY.INP, có cấu trúc:
Dòng 1: Ghi số nguyên dương N, là số lượng cây ban đầu trong hàng cây
(1≤N≤100)
Dòng 2: Ghi N số nguyên dương hi (1 ≤ hi ≤ 32767) lần lượt là độ cao của cây thứ i trong hàng cây, tính từ ngoài cổng vào Các số được ghi cách nhau ít nhất một dấu cách
Dữ liệu ra: Ghi ra file văn bản HANGCAY.OUT, theo cấu trúc:
Dòng 1: Ghi số nguyên dương M, là số lượng cây còn lại trong hàng cây sau khi
loại bỏ
Dòng 2: Ghi M số nguyên dương là chỉ số của mỗi cây còn lại trong hàng cây sau
khi loại bỏ Các số phải được ghi cách nhau ít nhất một dấu cách
Ví dụ:
5
5 8 3 4 9
3
1 2 5
(Có nhiều kết quả đúng, chỉ cần đưa ra một kết quả)
===Hết===
Lưu ý: Học sinh tạo một thư mục có tên là số báo danh của mình và chép các file bài làm vào thư mục đó.