Tải bản đầy đủ (.doc) (2 trang)

Đề thi + chương trình + bộ test HSG cấp trường môn tin học năm 2015

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (107.01 KB, 2 trang )

SỞ GIÁO DỤC VÀ ĐÀO TẠO
THANH HOÁ

ĐỀ THI CHỌN ĐỘI TUYỂN HSG LỚP 12 THPT
NĂM HỌC 2014 – 2015
MÔN THI: TIN HỌC
Ngày thi: 07 – 03 – 2015
Thời gian 150 phút, không kể thời gian giao đề
(Đề gồm 3 câu, 2 trang)

ĐỀ CHÍNH THỨC
SBD: ………………
Tổng quan bài thi:
Câu

Tên file nguồn
Bai1. PAS

Tên file input
Bai1.inp

Tên file output
Bai1.out

số test

1

Tên bài
Hiệu số


2

Ước chung lớn nhất

Bai2.PAS

Bai2. inp

Bai2. out

14

3

Hàn sắt

Bai3.PAS

Bai3. inp

Bai3. out

16

18

Hãy lập trình giải các bài toán sau:
Câu 1. Hiệu số
Cho một dãy gồm n số nguyên a1, a2, ..., an. Hãy tìm hai chỉ số i, j sao cho i < j và hiệu aj - ai là
lớn nhất.

Dữ liệu vào: Từ file Bai1.inp ồm 2 dòng:
- Dòng 1: Là số nguyên n (2 ≤ n ≤ 106)
- Dòng 2: Gồm n số nguyên a1, a2, ..., an (0 ≤ ai ≤ 109)
Kết quả ra: Ghi vào tệp Bai1.out giá trị lớn nhất của hiệu aj - ai.
Ví dụ:
Bai1.inp
4
2513

Bai1.out
3

Câu 2: Ước chung lớn nhất
An mới bắt đầu học toán và cậu ta vẫn chưa biết gì về ước số chung lớn nhất. Cho nên cậu ta
cần sự giúp đỡ của bạn để làm một vài phép toán. An có một dãy A gồm N số nguyên, được đánh số từ
1 đến N và An muốn tạo một mảng B gồm N+1 phần tử được đánh số từ 1 đến N+1 và các phần tử của
mảng B có tính chất sau: UCLN(B[i], B[i + 1]) = A[i], ∀ 1 ≤ i ≤ N.
Nếu như có nhiều kết quả thì bạn chỉ cần cho An biết mảng B có tổng các phần tử là nhỏ nhất
(vì cậu ta chỉ mới bắt đầu học toán nên rất ngại các con số lớn).
Dữ liệu vào: Từ file Bai2. inp dòng đầu tiên chứa một số nguyên T là số lượng test (1 ≤ T ≤ 10). Tiếp
theo là các test case:



Dòng đầu tiên của mỗi test case chứa một số nguyên dương N - số lượng phần tử của mảng A
(2 ≤ N ≤ 105).
Dòng thứ hai chứa N số nguyên A1 A2 ... AN (1 ≤ Ai ≤ 109)

Kết quả ra: Ghi vào tệp Bai2. out mảng B ứng với mỗi test.


Trang 1/ 2


Ví dụ
Bai2. inp

Bai2. out
1263
5 10 10 5

2
3
123
3
5 10 5
Câu 3. Hàn sắt

Anh Bo có n cây sắt lần lượt có chiều dài là a 1, a2,..., an. Anh muốn hàn n cây sắt trên thành một
cây duy nhất có chiều dài a1+ a2+ ... + an. Cách thực hiện là chọn 2 cây sắt bất kỳ hàn lại thành một cây
và cứ tiếp tục như vậy cho đến khi chỉ còn lại một cây duy nhất. Để hàn 2 cây sắt có chiều dài x và y
thì cần tốn chi phí là x+y. Bạn hãy giúp anh Bo tìm thứ tự hàn sao cho chi phí hàn là nhỏ nhất nhé.
Dữ liệu vào: từ file Bai3.inp gồm 2 dòng
- Dòng thứ nhất là số nguyên n (1 ≤ n ≤ 106) là số lượng cây sắt.
- Dòng thứ hai gồm n số nguyên a1, a2,..., an (1 ≤ ai ≤ 109) là chiều dài của các cây sắt.
Kết quả: Ghi vào tệp Bai3.out một số nguyên là chi phí tối thiểu để hàn các thanh sắt.
Ví dụ
Bai3. inp
7
8 4 2 2 3 1 1


Bai3. out
53

Giải thích: Thứ tự hàn sắt như sau:

Tổng chi phí hàn: 2 + 4 + 5 + 8 + 13 + 21 = 53.

------Hết-----

Trang 2/ 2



×