Danh mục: 20 Bộ Đề thi học sinh giỏi Tin Học Tỉnh Tiền Giang có đáp án 2025

20 Bộ Đề thi học sinh giỏi Tin Học Tỉnh Tiền Giang có đáp án 2025

Phần 1: Các bài tập dễ và cơ bản làm được các bài này các bạn sẽ được hiểu hơn về python:

  1. Bài 1: Tính Chu Vi Và Diện Tích Hình Vuông Bằng Python mới nhất
  2. Bài 2: Học Python – Tính Chu Vi Và Diện Tích Hình Tròn Bằng Python
  3. Bài 3: Học Python – Tính Chu Vi Và Diện Tích Hình Chữ Nhật Bằng Python
  4. Bài 4: Học Python – Tính Tổng Và Tích Hai Số Nguyên Bằng Python
  5. Bài 5: Học Python – Tính Trung Bình Cộng Của 3 Số Nguyên Bằng Python
  6. Bài 6: Học Python – Tính Chu Vi Và Diện Tích Tam Giác Bằng Python
  7. Bài 7: Học Python Tính Bán Kính R của Đường Tròn Ngoại Tiếp Tam Giác bằng Python
  8. Bài 8  : Học Python – Tính Diện Tích Tam Giác bằng Python
  9. Bài 9 : Tính Điểm Trung Bình bằng Python
  10. Bài 10: Học Python – Chia Táo bằng Python

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIỀN GIANG                                                              TRUNG HỌC cơ SỞ

Năm học 2012-2013 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 27/3/2013 (Đề thi có 02 trang, gồm 05 bài)

Hãy ỉập trình giải các bài toán sau:

Bài 1: Chuyển đổi thang đo (5 điểm)               Tên chương trình: DOI.PAS

Một nhà khoa học có ba loại nhiệt kế sử dụng các thang đo nhiệt độ khác nhau: một chỉ độ Celsius (C), một chỉ độ Fahrenheit (F) và một chỉ độ Kelvin (K). Trong thí nghiệm của mình, ông đã sử dụng cả ba loại nhiệt kế và ông cần một máy tính để nhanh chóng chuyển đổi giữa các loại này. Biết công thức chuyển đổi là:

F = –C + 32
5

K = c + 273.15

Yêu cầu: Đọc vào số đo và đơn vị đo nhiệt độ, hãy chuyển đổi sang các đơn vị đo còn lại.

Dữ liệu: Vào từ file văn bản DOI.INP gồm 1 dòng chứa số thực (biểu diễn số đo nhiệt độ) và đơn vị đo nhiệt độ cần chuyển (là một trong các chữ cái F, c, K). Các số này cách nhau bởi dấu cách.

Kết quả: Ghi ra file văn bản DOI.OUT gồm 3 dòng chứa các thông tin theo thứ tự: Nhiệt độ F, Nhiệt độ c, Nhiệt độ K.

DOI.INPDOI.OUT
20 cNhiet do F Nhiet do c Nhiet do K68

20

293.15

 

Bài 2: Đếm số 0 (3 điểm)                                   Tên chương trình: ZERO.PAS

Tìm độ dài xâu con dài nhất chứa các số 0 liên tiếp trong 1 xâu cho trước.

Dữ liệu: Vào từ file văn bản ZERO.INP gồm 1 dòng chứa xâu chỉ gồm các kí tự 0 và 1 (không cách nhau bởi dấu cách). Độ dài xâu không quá 100.

Kết quả: Ghi ra file văn bản ZERO.OƯT chứa độ dài xâu con dài nhất chứa các số 0 liên tiếp.

ZERO.INPZERO.OUT
001011100001104

 

Bài 3: Xóa kí tự (5 điểm)                                   Tên chương trình: XOAKT.PAS

Viết chương trình xóa kí tự thứ n của xâu s cho trước. Các kí tự trong xâu s được đánh số thứ tự từ 1, từ trái sang phải.

Dữ liệu: Vào từ file văn bản XOAKT.INP chứa 1 dòng theo thứ tự gồm 1 số nguyên N, dấu cách, xâu s chỉ chứa các kí tự ‘a\.’z’, ‘A\.’Z\ số N không vượt quá độ dài của xâu s đã cho. Độ dài của xâu s không vượt quá 80.

Bài 4: Tìm số âm (5 điểm)                                    Tên chương trìnhỉ SOAM.PAS

Tìm vị trí của số nguyên âm lớn nhất trong dãy số nguyên cho trước. Nếu tìm được nhiều hơn 2 vị trí thì chỉ ra vị trí đầu tiên xuất hiện (dãy số nguyên được đánh số bất đầu từ 1).

Dữ liệu: Vào từ file văn bản SOAM.INP gồm:

  • dòng thứ nhất chứa số nguyên n – số lượng phần tử có trong dãy.
  • dòng thứ hai chứa n số nguyên của dãy (các số trên cùng 1 dòng cách nhau bởi dấu cách)

Kết quả: Ghi ra file văn bản SOAM.OUT chứa vị trí của số nguyên âm lớn nhất trong dãy, nếu không tìm dược thì ghi -1.________________________________________ ________________________________________

Bài 5: Dãy số (2 điểm)                                                      Tên chương trình: DAYSO.PAS

Số nguyên f được gọi là ước số (dương) của số nguyên d nếu f lớn hơn 0 và tồn tại số nguyên n sao cho f X n = d. Ví dụ, số 12 là ước số của 60 vì 12 X 5 = 60.

Dãy số nguyên Xi, X2, …, Xn được gọi là dãy DDF nếu:

  • Mỗi Xi đều là số nguyên dương.
  • X1>1.
  • Xi+1 (với i > 1) là tổng các chữ số của tất cả các ước số (dương) của Xi.

Ví dụ

Dãy số 17, 9, 13, 5, 6, … là dãy DDF được hình thành theo cách sau:

  • Ước số (dương) của 17 là 1 và 17; tổng các chữ số là 1 + 1 + 7 = 9.
  • Ước số (dương) của 9 là 1, 3 và 9; tổng các chữ số là 1+3 + 9 = 13.
  • Ước số (dương) của 13 là 1 và 13; tổng các chữ số là 1 + 1 + 3 = 5.
  • Ước số (dương) của 5 là 1 và 5; tổng các chữ số là 1 + 5 = 6.

Biết rằng, với dãy số DDF bắt đầu bằng XI thì đến một lúc nào đó sẽ tồn tại Xn sao cho Xj = Xn, với mọi j>n. số Xn sẽ được gọi là so hạng cuối của dãy.

Yêu cầu: Xác định chiều dài của dãy DDF với số hạng đầu cho trước. Chiều dài của dãy DDF là giá trị của n, với Xn là giá trị cuối của dãy.

Dữ liệu: Vào từ file văn bản DAYSO.INP gồm 1 dòng chứa số hạng đầu XI (xi < 2000).

Kết quả: Ghi ra file văn bản DAYSO.OƯT chứa chiều dãi của dãy DDF.

———— hết——————

  • Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).
  • Thí sình không được sử dụng tài liệu.
  • Giám thị không giải thích gì thêm.

 

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIỀN GIANG           TRƯNG HỌC cơ SỞ

Năm học 2014-2015 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 25/3/2015 (Đề thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Tìm từ (5 điểm)                                        Tên chương trình: ỊVORD.PAS

Cho trước một xâu kí tự. Một từ được định nghĩa là một xâu con liên tiếp chứa các chữ cái (,al,zl hoặc ‘A’..’Z’). Một từ có thế được giới hạn giữa các dấu cách hoặc chấm câu. Dấu chấm câu là một trong các kí tự sau: dấu chấm (.), dấu phẩy (,), dấu chấm phẩy (;), dấu chấm than (!) hoặc dấu chấm hỏi (?).

Yêu cầu: Hãy tìm tất cả các từ có trong xâu mà có kí tự bắt đầu và kí tự kết thúc giống nhau (có phân biệt giữa chữ in hoa và chữ in thường).

Dữ liệu: Vào từ file văn bản WORD.INP chứa xâu kí tự gồm các chữ cái (‘a’…^’ hoặc ‘A’..’Z’), dấu cách, hoặc dấu chấm câu. Độ dài xâu không quá 100 kí tự.

Kết quả: Ghi ra file văn bản WORD.OƯT danh sách các từ mà có kí tự bắt đầu và kí tự kết thúc giống nhau, mỗi từ trên 1 dòng. Nếu không tìm thấy thì ghi -1.

WORD.INPWORD.OUT
dawd
Jun dawd gog, vex symphs.gog
symphs
Bài 2: Số thử tự (5 điểm)                                      Tên chương trình: INDEX.PAS

 

 

Một file văn bản chứa thông tin về học sinh của một lớp học gồm số thứ tự của học sinh và theo sau là tên của học sinh đó. Do lóp vừa nhận thêm một học sinh chuyển đến và giáo viên chủ nhiệm xếp học sinh này vào đầu danh sách nên cần đánh lại số thứ tự của các học sinh trong danh sách lóp.

Yêu cầu: Đánh lại số thứ tự của tất cả học sinh có trong danh sách bằng cách tăng số thứ tự của mỗi học sinh lên 1 đơn vị và giữ nguyên danh sách theo trật tự ban đầuT

Dữ liệu: Vào từ file văn bản INDEX.INP gồm:

  • Dòng đầu tiên chứa số nguyên N (1 < N < 100).
  • Mỗi dòng trong N dòng tiếp theo chứa thông tin của một học sinh theo thứ tự gồm: số thứ tự (số nguyên từ 1 đến 10000), dấu cách, tên của học sinh (không quá 20 kí tự).

Kết quả: Ghi ra file văn bản INDEX.OƯT danh sách học sinh nhu định dạng ban đầu nhung đã tăng số thứ tự của mỗi học sinh lên 1 đơn vị.

INDEX.INPINDEX.OUT
22
14 Nam15 Nam
42 Thanh43 Thanh

 

Bài 3: Dãy Min-Max (5 điểm)                           Tên chương trình: MINMAX.PAS

Cho trước dãy s chứa các số nguyên, vị trí các phần tử được đánh số từ 1 trở đi và từ trái sang phải.

Yêu cầu: Hãy tìm 2 dãy số nguyên dương, trong đó dãy số thứ nhất biểu diễn các vị trí trong s tại đó chứa số hạng nhỏ nhất của dãy s và dãy số thứ hai biếu diễn các vị trí trong s tại đó chứa số hạng lớn nhất của dãy s.

Dữ liệu: Vào từ file văn bản MINMAX.INP gồm :

  • Dòng đầu chứa số nguyên N – biểu diễn số lượng phần tử của dãy (1 < N < 40)
  • Dòng thứ hai chứa N số nguyên A[i] (-231 < A[i] < 231-1 với 1< i < N)

Kết quả: Ghi ra file văn bản MINMAX.OƯT lần lượt chứa 2 dòng:

  • Dòng thứ nhất chứa dãy số biểu diễn các vị trí trong s tại đó chứa số hạng nhỏ nhất của dãy s.
  • Dòng thứ hai chứa dãy số biểu diễn các vị trí trong s tại đó chứa số hạng lớn nhất của dãy s.

Các số trên cùng 1 dòng cách nhau bởi dấu cách.

MINMAX. INPMINMAX.OUT
73
3 6-146532 5

 

Bài 4: Số gốc (3 điểm)                                         Tên chương trình: ROOT.PAS

Cho trước số tư nhiên a có biểu diễn trong hê cơ số 10 là a = a a _H … an SỐ gốc của số tự nhiên a được xác định như sau:

  • Nếu a chỉ có 1 chữ số thì a cũng là số gốc, ngược lại thực hiện như sau:
  • Chọn ra 2 chữ số đầu tiên từ bên trái an và an-i.
  • Tính tổng s= an + an-i:

o Nếu s <10 thì thay 2 số vừa chọn trong biểu diễn của a bằng s. o Nếu s >10 thì thay 2 số vừa chọn trong biểu diễn của a bằng S-9.

  • Lặp lại quá trình trên cho đến khi a chỉ còn 1 chữ số.
  • Số tìm được bởi quy luật trên được gọi là số gốc.

Ví dụ: Tìm số gốc của số a= 87345691. Đầu tiên, cộng 2 số 8 và 7. Ta được số 15. Vì tổng tìm được lớn hơn 10 nên ta thay 2 số đầu của a bằng 15-9, khi đó a sẽ là 6345691. Tiếp tục, cộng 2 số 6 và 3 được 9, sau khi thay thế a sẽ là 945691. Cộng 2 số 9 và 4 được 13, sau khi thay thế a sẽ là 45691. Cộng 2 số 4 và 5 được 9, sau khi thay thế a sẽ là 9691. Cộng 2 số 9 và 6 được 15, sau khi thay thế a sẽ là 691. Cộng 2 số 6 và 9 được 15, sau khi thay thế a sẽ là 61. Cộng 2 số 6 và 1 được 7, sau khi thay thế a sẽ là 7. Sơ đồ thay thế như sau:

8+7=15^15-9=6->6+3=9->9+4=13^13-9=4->4+5=9->9+6=15^15-9=6^6+9=15^ 15-9=6^6+1=7 SỐ gốc tìm được là 7.

Yêu cầu: Viết chương trình xác định số gốc của số nguyên a cho trước.

Dữ liệu: Vào từ file văn bản ROOT.INP chứa số nguyên a (< maxlongint).

Kết quả: Ghi ra file văn bản ROOT.OƯT chứa số gốc của số nguyên a.

ROOT.INPROOT.OUT
873456917

 

Bài 5: Xâu SubsThree (2 điểm)                       Tên chương trình: SƯBSTH.PAS

Xâu con của xâu s được hiểu là một dãy các ký tự liên tiếp của s.

Xâu SubsThree của s là xâu con thỏa mãn:

  • Đó là xâu khác rỗng và chỉ chứa các chữ số ‘0’..’9’
  • Nếu chuyển xâu này sang số thập phân thì sẽ được số chia hết cho 3

Ví dụ, xâu “130a303” chứa 9 xâu Substhree như sau: ba xâu “3”, hai xâu “30”, hai xâu “0”, một xâu “303” và một xâu “03”. Xâu “30a3” không là xâu Substhree vì có chứa chữ cái, còn xâu “13” không xâu Substhree vì số 13 không chia hết cho 3.

Lưu ý rằng hai xâu Substhree được xem là khác nhau nếu chúng khác nhau về độ dài hoặc vị trí bắt đầu của chúng trong xâu s (mặc dù các kí tự của chúng giống nhau)

Yêu cầu: Cho trước xâu s, hãy đếm số lượng xâu Substhree chứa trong s.

Dữ liệu: Vào từ file văn bản SƯBSTH.INP chứa xâu khác rỗng s có tối đa 106 kí tự. Môi kí tự của s chỉ có thể là chữ số ‘0’..’9′ hoặc chữ in thường ‘aVy.

Kêt quả: Ghi ra fìle văn bản SƯBSTH.OƯT chứa nguyên biểu diễn số lượng xâu Substhree chứa trong s.

SUBSTH.INPSUBSTH.OUT
130a3039

 

————— hết————————-

  • Các tập tin chương trình phải đặt theo đủng quy định (cả phần tên và phần mở rộng).
  • Thí sinh không được sử dụng tài liệu.
  • Giảm thị không giải thích gì thêm.

20 Bộ Đề thi học sinh giỏi Tin Học Tỉnh Tiền Giang có đáp án 2025

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIÈN GIANG        TRUNG HỌC co SỞ

Năm học 2013-2014 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 26/3/2014 (Đề thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Dãy Subtra (5,0 điểm)                             Tên chương trình: SUBTRA.PAS

Dãy số ti, t2,…tm được gọi là dãy Subtra nếu:

  • Mỗi phần tử ti (i=T..m) của dãy là một số nguyên lớn hơn hoặc bằng 0.
  • Mồi phần tử của dãy, bắt đầu từ phần tử thứ ba là hiệu của hai phần tử liền kề trước nó (tn+2=tn – tn-1 với t >1). Dãy sẽ kết thúc ở tm nếu tm-i<tm.

Ví dụ, nếu bắt đầu bằng hai số 120 và 71 thì dãy Subtra được phát sinh

như sau: 120; 71; 49; 22; 27. Dãy kết thúc ở số 27, độ dài của dãy là 5.

Yêu cầu: Đọc vào hai số ti và Í2, hãy tìm độ dài của dãy Subừa với hai sổ bắt đầu là ti và t2.

Dữ liệu: Vào từ fíle văn bản SƯBTRA.INP chứa hai số nguyên dương ti và t2, 0<Í2<ti< 10000, mỗi số nằm trên 1 dòng.

Kết quả: Ghi ra file văn bản SUBTRA.OƯT độ dài của dãy Subtra với hai số bắt đau là ti và t2-

SUBTRA.INPSUBTRA.OUT
120

71

5

 

Bài 2: Đọc văn bản (3,0 điểm)                                    Tên chương trình: ARAP.PAS

Tiếng Ả Rập, tiếng Ba Tư và tiếng Do Thái là các ngôn ngừ rất đặc biệt không giống như tiếng Anh và nhiều thứ tiếng khác, nó được viết từ phải sang trái. Tuy nhiên, những con số vẫn giừ nguyên (viêt từ trái sang phải). Ví dụ,

câu “manteiv fo tsaoc ffo deraeppasìd sregnessap 221 gniyrrac 777 gnieoB” sẽ được viết theo tiếng Anh là: “Boeing 777 carrying 221 passengers disappeared off coast of Vietnam

Yêu cầu: Chuyển xâu văn bản tiếng Ả Rập sang văn bản Tiếng Anh.

Dữ liệu: Vào từ file văn bản ARAP.INP chứa xâu văn bản theo tiếng Ả rập gồm các từ, mồi từ chứa các kí tự (a-z, A-Z, 0-9) ngăn cách nhau bởi dấu cách.

Kết quả: Ghi ra file văn bản ARAP.OUT chứa xâu văn bản theo tiếng Anh.

ARAP.INPARAP.OUT
manteiv fo tsaoc ffo deraeppasid sregnessap 227 gniyrrac 777 gnieoBBoeing 777 carrying 227 passengers disappeared off coast of Vietnam

 

Bài 3: Độ cao (5,0 điểm)                                Tên chương trình: HEIGHT.PAS

Bạn được giới thiệu một số địa điểm để tham quan. Mỗi địa điểm được giới thiệu bao gồm tên địa điểm và độ cao của nó.

Yêu cầu: Hãy xác định trong các địa điểm đã cho, một địa điểm có độ cao gần nhất với độ cao của bạn ưa thích.

Dữ liệu: Vào từ file văn bản HEIGHT.INP gồm:

  • dòng thứ nhất chứa số nguyên m – độ cao ưa thích của bạn.
  • Các dòng tiếp theo, mỗi dòng chứa các thông tin theo thứ tự sau: tên của một địa điểm, dấu cách, một số nguyên thể hiện độ cao của địa điểm đó.

Kết quả: Ghi ra file văn bản HEIGHT.OUT chứa tên địa điểm mà bạn chọn. Nếu có 2 địa điểm được chọn thỏa mãn yêu cầu đề ra, hãy in ra tên địa điểm có độ cao lớn hon.

HEIGHT.INPHEIGHT.OUT
5

Everest 8850 Kamet 7756 Bahamas 10 Maldives 0 Mariana -11521

Bahamas

 

Bài 4: Tính thời gian chênh lệch (5,0 điểm) Tên chương trình: TIME.PAS

Để xây dựng các công trình thủy lợi đôi khi cần phải khoan nổ mìn đào đá. Việc tính toán thời gian nổ phải thật chính xác để đảm bảo an toàn cho người lao động.

Yêu cầu: Biết thời điểm hiện tại và thời điểm sẽ xảy ra vụ nổ. Hãy xác định khoảng thời gian chênh lệch giữa 2 thời điểm nói ưên.

Dữ liệu: Vào từ file văn bản TIME.INP gồm:

  • dòng đầu tiên chứa thời điểm hiện tại ở dạng hh:mm:ss (giờ, phút, giây). Giờ (hh) là số nguyên từ 0 đến 23; phút (mm), giây (55) là các số nguyên từ 0 đến 59. Các giá trị hh, mm, ss được định dạng 2 chừ số.
  • dòng thứ hai chứa thời điểm sẽ xảy ra vụ nổ theo định dạng như trên. Kết quả: Ghi ra file văn bản OƯT chứa khoảng thời gian chênh lệch giừa 2 thời điểm theo định dạng như trên. Biết rằng thời gian chênh lệch ít nhất 1 giây và tối đa 24 giờ.
TIME.INPTIME.OUT
20:00:00

04:00:00

08:00:00
12:34:56

14:36:22

02:01:26
Bài 5: Số mát mẻ (2,0 điểm)                             Tên chương trình: COOL.PAS

 

 

Theo định nghĩa của một nhóm nghiên cứu Tin học, 0 là một chừ số mát mẻ. Họ gọi độ mát của một số là số lượng 0 trong biểu biễn thập phân của nó. Ví dụ: độ mát của số 100 là 2, độ mát của số 1 là 0.

Yêu cầu: Tìm tổng độ mát của các số từ 0 đến sổ nguyên N cho trước.

Dữ liệu: Vào từ file văn bản COOL.INP chứa số nguyên N (0< N < 10 000

000).

Kết qỊuả: Ghi ra fíle văn bản COOL.OUT chứa tổng độ mát của các số từ 0 đến sổ nguyên N.

COOL.INPCOOL.OUT
556

———– hét——————

•                Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•        Thí sinh không được sử dụng tài liệu.

•       Giám thị không giải thích gì thêm.

 

 

Cho trước số nguyên N. Hãy tìm số nguyên lớn nhất nhỏ han N sao cho tổng các chữ số của nó nhỏ hơn tổng các chữ số của số nguyên N một đơn vị.

Dữ liệu: Vào từ fíle văn bản NUMBER.INP chứa số nguyên N(1<N<100

000) ‘

Kết quả: Ghi ra file văn bản NUMBER.OƯT chứa số nguyên cần tìm.

NUMBER.INPNUMBER.OUT
15201510

 

Bài 3: Báo cáo tài chính (5 điểm)                            Tên chươiĩg trình: REPORTPAS

Nhân dịp tổng kết cuối năm, bạn được giao nhiệm vụ thống kê tổng số chi phí của từng nhân viên của một công ty sau các chuyến du lịch trong năm. Mỗi nhân viên phải nộp báo cáo chi phí cá nhân cho bạn sau mỗi chuyến đi.

Yêu cầu: Viết một chương trình đọc vào danh sách gồm tên từng người và chi phí của họ, sau đó tạo ra một danh sách được sắp xếp theo tên nhân viên, kèm theo tống số chi phí của mỗi cá nhân.

Dữ liệu: Vào từ file văn bản REPORT.INP có:

  • dòng đầu tiên chứa số nguyên n (1< n <100), số lần nộp bảo cáo của các nhân viên trong công ty.
  • n dòng tiếp theo mỗi dòng chứa 2 giá trị: tên người và chi phí tương ứng (là một số thực). Tên người và chi phí cách nhau bởi dấu cách. Lưu ý: tên người không phân biệt chữ in và chữ thường (ví dụ: Trung và tRung được xem là như nhau).

Kết quả: Ghi ra file văn bản REPORT.OUT chứa danh sách các nhân viên trong công ty kèm theo tổng chi phí của họ trong năm, trong đó tổng chi phí được làm tròn hai số lẻ. Danh sách cần được sắp xếp alphabet theo tên người. Tên người phải được viết hoa chữ cái đầu tiên, các chữ cái còn lại là chữ thường.

REPORT.INPREPORT.OUT
5

trung 450.55 binh 1034.56 trUNg 1000.00 daNn 530.00 danH 470.00

Binh 1034.56 Danh 1000.00 Trung 1450.55

 

Cho trước hai sổ nguyên N và D. Hãy tỉm N số nguyên dương X]…XN sao cho hiệu số giữa tích của chúng và tổng của chúng bằng với D.

Dữ liệu: Vào từ file văn bản SUMPRO.INP chứa hai số nguyên dương N (2<N< 1000) và D (0 <D < 1000).

Kết quả: Ghi ra file văn bản SUMPRO.OUT chứa N số nguyên dương thỏa mãn yêu cầu nói trên theo thứ tự không giảm. Lưu ý rằng các số tìm được có thể bằng nhau. Giá trị các số được in không vượt quá 1 o6.

Các số trên cùng 1 dòng cách nhau bởi dấu cách

SUMPRO.INPSUMPRO.OUT
3 512 8

 

Bài 5: Cân bằng bit (2,0 điểm)                                     Tên chương                                                                             trình:                                                                             BỈT.PAS

Đọc vào 2 xâu khác rỗng s và T có độ dài bằng nhau,                                                                                                        s                                                                                                  chứa các kí tự                                                                                                  ‘0’,

‘1’và ‘?\ còn T chỉ chứa các kí tự ‘0’ và ‘1\

Yêu cầu: Hãy chuyển đổi xâu s thành xâu T với số bước nhỏ nhất. Biết rằng môi bước có thế thực hiện một trong các thao tác sau:

  1. Thay đổi kí tự ‘0’ trong s thành ‘r.
  2. Thay đổi kí tự ‘?’ trong s thành ‘0’ hoặc ‘
  3. Hoán đối 2 kí tự bât kỳ trong xâu s.

Ví dụ: Với xâu s = ‘0?1?’ và T = ‘1001’. Ta có thể chuyển s thành T trong vòng 3 bước sau:

  • Bước 1: Hoán đổi S[l] và S[3]. s trở thành ‘1?0?’
  • Bước 2: Chuyển S[2] to ‘0’. s trở thành ‘100?’
  • Bước 3: Chuyển S[4] to ‘ r. s trở thành 41 oor

Dữ liệu: Vào từ file văn bản BIT.INP gồm 2 dòng chứa 2 xâu s và T, mỗi dòng có độ dài không quá 100.

Kết quả: Ghi ra fỉle văn bản BIT.OUT chứa số bước nhỏ nhất để chuyển đổi s thành T. Nếu không chuyển đổi được thì ghi số -1.

BIT.INPBIT.OUT
0?1?

1001

3

————- HẾT——————

•     Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•     Thỉ sình không được sử dụng tài liệu.

•     Giám thị không giải thích gì thêm.

 

 

Họ và tên thí sinh:…………………………………… số báo danh:……………………………………………………………

 

SỎ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIẺN GIANG         TRƯNG HỌC co SỎ

Năm học 2016-2017 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi : 22/3/2017 (Đe thi có 04 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Giai thừa ngược (5 điểm)                                  Tên chưong trình: PINV.PAS

Trong toán học, n! (đọc là n giai thừa) được định nghĩa như sau:

n! =1x2x3x … X (n-1) X n (n là số nguyên không âm) Ví dụ:      3! = 1 X 2 X 3 = 6

Đặc biệt: với n = 0, người ta quy ước 0! = 1. Ký hiệun! được dùng lần đầu bởi Christian Kramp vào năm 1808.

Yêu càu: Biết trước giá trị của n!, hãy tìm sô nguyên n.

Dữ liệu: Vào từ file văn bản FINV.INP chứa giá trị của n!. Biết rằng số chữ số của n! không vượt quá 1 o6.

Kết quả: Ghi ra file văn bản FlNV.OƯT chua số tự nhiên n tìm được. Nêu không tìm được số nauvên n thì ghi -1.

FINV.INPFINV.OUT
362880010

 

Bài 2Í Chu kỳ dự đoán (5 điểm)                                  Tên chương trình: PẼRI.PAS

Ngày nay, có nhiều mô hình dự báo nhăm để biết trước những điều có thể xảy ra trong tương lai. Một mô hình thường dự báo, dự đoán giá trị của biến số (hoặc một dãy biến số) tại một số diêm trong tương lai căn cứ vào những dữ liệu trong quá khứ.

Dãy số nguyên ai. a2, …,an được gọi là dãy dự đoản chu kỳ k nếu tồn tại số nguycn dương k (IV k<n) sao cho mọi phần tử a; của dãy đều thỏa mãn a, a;+k với 1< i< n (nếu phần ai+k nằm ngoài dãy thì xem như nó nhận giá trị tùy chọn), số nguyên dương nhỏ nhất k thỏa mãn tính chất trên được gọi chu kỳ dự đoán của dãv số.

Một lập trình viên được đặt hàng viết chương trình phân tích chuỗi giá trị cho trước và cho biêt chuỗi này có khả năng tạo chu kỳ dự đoán k=3 hay không?

Yêu cầu: Đọc vào 1 dãy số nguvên và cho biết có là dãv dự đoán chu kỳ k=3 không?

Dữ liệu: Vào từ file văn bản PERI.INP

  • Dòng đầu chứa số nguyên n (3< n < 500).

 

  • Dòng thứ hai chứa n số nguyên aj (1< ai < 100). Các số này được cách nhau bởi dấu cách.

Ket quả: Ghi ra file văn bản PERI.OUT chứa chữ “YES” nếu dãy đã cho là dãy dự đoán chu kỳ k=3, ngược lại ghi chữ “NO”.

PERI.INPPERI.OUT
12

12 3′ 123123123

YES
11

123123 t 2312

YES
7

7 3 6 7 2 3 9

NO

 

Bài 3: Tên mã (4 điểm)                                                     Tên chương trình: CODE.PAS

Ngoài tên gọi chính, một hệ điều hành còn có tên phiên bản và tên mã (codename), tất cả đều được đặt theo một quy luật hay lý do nào đó. Ví dụ, hệ điều hành Android 4.4 có tên mã là KITKAT, Windows Phone có tên mã PHOTON, Fedora 14 có tên là LAƯGHLIN.

Tại Hội nghị triến lãm sản phẩm phần mềm, Ban Tổ chức quy định rằng tên mã đạt siải cao nhất là tên mã có số lượng chữ cái khác nhau nhiều nhất. Ví dụ: Tên mã K1TKAT có 4 chữ cái khác nhau: A, I, K và T; Tên mã JELLY BEAN có 7 chữ cái khác nhau A, B, E, J, L, N và Y; nên tên mã JELLY BEAN đạt giải cao nhất.

Ngoài ra cũng lưu ý rằng, nếu hai tên mã có cùng số chữ cái khác nhau thì tên mã nhỏ hơn sẽ đạt giải cao nhất. Biêt rằng phép so sánh hai tên mã được thực hiện theo quy tăc như sau:

+ Tên mã A gọi là nhỏ hơn tên mã B (B lớn hơn A) nếu như kí tự dầu tiên khác nhau giữa chúng kể từ trái sang phải trong tên mã A có mã ASCII nhỏ hơn.

+ Nếu A và B là các tên mã có độ dài khác nhau và A là đoạn đầu của B thì A là nhỏ hơn B.

Yêu cầu: Được biết danh sách liệt kê tên mã của các hệ điều hành, hãy xác định tên mã của hệ điều hành đạt giải cao nhất?

Dữ liệu: Vào từ fìle văn bản CODE.INP gồm:

  • Dòng đầu tiên chứa số nguyên n cho biết số lượng tên mã của các hệ điều hành (1 < n< 100).
  • Mỗi dòng trong n dòng tiếp theo chứa một tên mã của hệ điều hành (mỗi dòng chứa không quá 20 kí tự). Mỗi tên mã đều bắt đầu và kết thúc bằng chữ cái in hoa. Giả sử tên mã của một hệ điều hành gồm các chữ cái in hoa ‘A’..’Z’ và có thể chửa dấu cách ở giữa.

Ket quả: Ghi ra ílle văn bản CODE.OUT chứa tên mã đạt giải cao nhất.

CODE.INPCODE.OUT
3

OREO

KITKAT

 

 

SID

KĨTKAT _____________________

Bài 4: Xổ số điện toán (4 điểm)                            Tên chương trình: LOT.PAS

Người chơi tham gia được tự chọn n vé số để dự thưởng, mỗi vé số là một chuồi số gồm 6 bộ số phân biệt, mỗi bộ số là 1 số nguyên có 2 chữ số (có giá trị từ 01, 02,…,45).

trên.

Sau khi so từng vé số với chuỗi số kết quả quay thưởng của Ban Tổ chức công bô, người chơi sẽ biêt được có trúng thưởng hay không. Tổng sô tiền thưởng của người chơi là tống số tiền thưởng nhận được của từng vé số trúng thưởng.

Cơ cấu giải thưởng được xác định như sau:

  • Giải đặc biệt (trúng cả 6 bộ số) : 12 tỷ (đồng)
  • Giải nhất (trúng cả 5 bộ số) : 10 000 000 (dồng)
  • Giải nhì (trúng cả 4 bộ số) : 300 000 (đòng)
  • Giải ba (trúng cả 3 bộ số) : 30 000 (đồng)

Lưu ý:

  • Các bộ số của 1 vé số trùng với kết quả các bộ số của quay thưởng không cần theo thư tự.
  • Trong trường hợp một vé số trúng nhiều giải thưởng thì người trúng thưởng chỉ được lĩnh một giải thưởng cao nhất.
  • Nếu nhiều vé số trúng giải, trong đó có giải đặc biệt thì chỉ nhận giải đặc biệt Ợackpot).

22

thì người này sẽ trúng thưởng 60000 đồng Dữ liệu: Vào từ file văn bản LOT.INP gồm:

  • Dòng đầu tiên chứa chuỗi sổ kết quả quay thưởng.
  • Dòng thứ hai chứa số nguyên n (1 <n<100), số lượng tờ vé số của người chơi.
  • n dòng tiếp theo, mỗi dòng chứa thông tin của 1 vé số.

Các bộ số trong chuỗi số kết quả quay thưởng và trong 1 vé số cách nhau bởi dấu cách.

Ket quả: Ghi ra file văn bản LOT.OUT chứa tổng số tiền thưởng nhận được. Nếu không trúng thưởng thì ghi số 0. Neu trúng giải đặc biệt thì ghi ‘JACKPOT’.

LOT.INPLOT.OUT
03 02 07 41 36 22 560000

 

 

Bài 5: Số bội của 3 (2 điểm)

Hệ thông lưới điện có thê bị gây hại bởi nhiêu tác nhân, trong đo một nguy cơ tiềm ẩn làm cản trở hoạt động và làm hao mòn thiết bị nhưng ít người nhận biết được chính là sóng hài – mối nguy cơ tiềm ẩn được phát hiện ngay đầu thập niên 1890.

Sóng hài (harmonic) là dòng điện không mong muốn làm quá tải đường dây và biến áp, làm tăng nhiệt độ hệ thống (hoặc thậm chí gây hỏa hoạn) và gây nhiễu lên lưới điện. Sóng hài là các điện áp hay dòng điện hình sin có tần số là bội số của tần số công nghiệp (tần số cơ bản), do hiện diện của các tải phi tuyến trong lưới điện. Ví dụ dòng điện hài có tần số 150HZ trên lưới điện 50HZ là sóng hài bậc 3. Thường chỉ có sóng hài bậc lẻ 3, 5, 7, 9 là xuất hiện trong lưới điện 3 pha.

Với tần số của 1 dòng điện đã cho, cần tìm sóng hài bậc 3 có ảnh hưởng đối với tân số của dòng điện đã cho.

Yêu cầu: Cho trước tự nhiên n. Hãy thay đổi 1 chữ số của n để được số chia hết cho 3 và là số lớn nhất trong các so tìm được (kể cả trường hợp ban đâu n chia hết cho 3).

Dữ liệu: Vào từ file văn bản MUL3.INP chứa số tự nhiên n có tối đa 100 chữ số.

Kết quả: Ghi ra file văn bản MUL3.0UT chứa số tự nhiên tìm được theo yêu cầu trên.

MUL3.INPMUL3.OUT
123723
96
HÉT

 

 

  • Các tập tin chương trình phải đặt theo đủng quy định (cả phần tên và phần mở rộng).
  • Thỉ sinh không được sử dụng tài liệu.
  • Giám thị không giải thích gì thêm.

Họ và tên thí sinh:……………………………………………… số báo danh:……………………………………………………………….

 

KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2017-2018 Môn: TIN HỌC

Thời gian: 150 phút (khổng kể thời gian giao đề)

Ngày thi: 30/3/2018

(Đê thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các hài toán sau:

Bài 1: Chỉ số BMR (5 điểm)                                          Tên chương trình: BMR.PAS

‘BM&Ợìasal Metabolic Rate) là chỉ số năng lượng cơ bản của cơ thể cho biết mức năng lượng tối thiểu mà cơ thế cần để duy trì các hoạt động bình thường.

  • Công thức tính chỉ số BMR:

Nừ giới: BMR = 655 + (9.6 X kg) -f (1.8 X cm) – (4.7 X tu ổi) Nam giới: BMR = 66 + (13.7 X kg) -h (5 X cm) –                                                                 (6.8 X tuồi)

  • Cách tính tống lượng calo cần hấp thụ theo từng múc độ hoạt động the chất
  • Nếu bạn quá ít hoạt động (ít hoặc không tập luyện): Caỉo = BMR X 1.2
  • Neu bạn ít hoạt động (ít tậu thể dục/thê thao 1-3 ngày/tuần): Calo = BMR X 375
  • Nếu bạn hoạt động vừa (tập thê dục/thế thao vừa vừa 3-5 ngày/tuần): Calo = 55
  • Nếu bạn hoạt động nhiều (tập thẻ dục/thề thao nhiều 6-7 ngày/tuần): Calo = BMR X 1.725
  • Nêu bạn hoạt động cường độ cao (tập thê dục/thê thao cường độ cao & cỏng việc thể chất hoặc tăng gấp đổi lượng luyện tập): Calo = BMR X 1.9

Yẽu cầu: Đọc vào thông tin của 1 người bao gồm giới tính, tuổi, chiều cao, cân nặng và mức độ hoạt động của người đó. hãy tính lượng calo cần thiết.

Dữ liệu: Vào từ file văn bản BMRHNP gồm 5 dòng:

  • Dòng 1: Chứa chữ “NAM’’ hoặc “NU”, cho biết giới tính của người đó.
  • Dỏng 2:Chứa số nguyên cho biết tuổi.
  • Dòng 3: Chứa số nguyên cho biết chiều cao (tính bằng cm).
  • Dòng 4: Chứa số nguyên cho biết cân nặng (tính bàng kg).
  • Dòng 5: Chứa 1 trong các ki tự “S”, “L”, “M”, “A”, “E”, cho biết mức độ hoạt động tương ứng như sau:

S: quá ít hoạt động (ít hoặc không tập luyện); L: ít hoạt động; M: hoạt động vừa; A: hoạt động nhiều; E: hoạt động cường độ cao.

Kết quả: Ghi ra file văn bản BMR.OUT chứa lượng calo cần thiết cho người đó. Kết quả là một số nguyên không lấy phán thập phân.

BMR.INPBMR. OUT
NAM1713
52
1 65
65
s

 

Bài 2: Số Emỉrp (5 điểm)                                                 Tên chương trình: EMỈRP.PAS

Số Emirp là một số nguyên tố mà khi đảo ngược vị trí các chữ số của nó, ta cũng được một số nguyên tố. Định nghĩa này không bao gồm các số nguyên tố xuôi ngược (đọc ngược hay xuôi cũng là số nguyên tố chính nó), như 151 hoặc 787) và không bao gồm các số nguyên tố có một 1 chữ số. Biêt rằng, số nguyên tố là số tự nhiên chỉ có hai ước sô dương phân biệt là 1 và chính nó.

Yêu cầu: Đọc vào số nguyên n, hãy cho biết n có là số Emirp không?

Dữ liệu: Vào từ file văn bản EM3RP.INP chứa số nguyên n (1< n < 10000).

Kết quả: Ghi ra file văn bản EMIRP.OUT chứa chứa chữ “YES” nếu n là số Emirp, ngược lại ghi chữ “NO”.

EMIRP . INPEMIRP.OUT
149YES

 

Bài 3: Số thân thiện (4 điểm)                                        Tên chương trình: FRIEND.PAS

Người ta gọi bộ 3 số nguyên dương là thăn thiện nếu chúng khác nhau đôi một và tích của hai trong số chúng chia hết cho số thứ ba.

Yêu cầu: Đọc vào hai số nguyên dương phân biệt, hãy đếm xcm có bao nhiêu số nguyên tạo với hai số dã cho thành bộ 3 số thăn thiện.

Dữ liệu: Vào từ file văn bản FRIEND.INP chứa 2 số nguyên dương phân biệt cách nhau bởi dấu cách, mỗi số có giá trị không vượt quá 40000.

Kết quả: Ghi ra file văn bản ERIEND.OUT chứa số lượng số nguyên tạo với hai số đã cho thành bộ 3 sô thân thiện.

FRIEND.INPFRIEND.OUT
5 15õ
Giải thích: Có đúng hơi số cùng với số 5 và số ỉ5 tạo thành bộ 3 thân thiện là số 3 (vì 3×5 chia hết cho 15, 3×15 chia hết cho 5 và 5 X 15 là chia hết cho 3) và số 75 (vì 5 X 15 chia hết cho 75, 5 x 75 chia hết cho 15 và 15 X 75 chia hết cho 5).

 

 

Bài 4: Giải mã Email (3 điểm)                               Tên chương trình: EMAIL.PAS

Một người dùng giấu một mật khẩu trong một email đâ gửi. Email đã gửi bao gồm một số dòng văn bản. Mỗi dòng chứa một số từ. Từ là dãy liên tiếp các chữ cái 6a\.’z\ Mật khẩu được thành lập bằng cách ghép theo thứ tự các từ lấy trong nội dung email đã gửi.

Mật khẩu được tìm thấy dựa theo quy luật sau:

 

  • Dòng thứ nhât củẩ ciriail không chứa mặt khẩu.
  • Dòng thử hai của email chứa từ đầu tiên của mật khẩu.
  • Dòng thứ ha của email chứa từ thứ hai của mật khẩu.
  • Dòng thử tư của email chứa từ thử ba của mật khẩu.

Và tiếp tục như thể…

Luu ý: Nếu trên một dòng nào của email khòng tìm được từ nào của mật khẩu theo quy luật trên thì lừ tìm được là rỗng và không đưa từ rỗng vào mật khẩu.

Dữ liệu: Vào từ file văn bản EMAIL.INP gồm:

  • Dòng đầu tiên chửa số dòng của email (email chứa không quá 50 dòng).
  • Các dòng tiếp theo chứa nội dung của Einail.

Kết quả: Ghi ra file văn bản EMAIL.OUT chứa mật khẩu tìm được theo quy luật trên. Mỗi từ cua mật khâu nằm trcn 1 dòng. Dữ liẹu vào đain bảo mật khẩu tìm được luôn khác rỗng.

EMAIL.INPEMAIL,OƯT
5toi
viet nam la quoc gia thuoc khu vuc dong nam adang
toi thay hoa vang tren co xanho
tet dang vao nhanga
tim nha o
bay chim thien nga
Bái 5: Dãy con (3 điểrii)                                      Tên chương trình: SƯBSEQ.PAS

 

 

Cho dãy A có n phần tử. mỗi phần tử là một số nguyên (có thể âm, bàng 0 hoặc dương). Hãy tim dãy con khác rỗng các phần tử liên tiép của A sao cho:

  • Phần tử đầu dãv con và cuối dãy con bằng nhau.
  • Tổng các phần tử của dãy con là lớn nhất.

Hay nói cách khúc: Tìm 2 số nguvên / và /• (1 <l<r<n) sao cho a/ = ar và tổng a/ + ÍU+I + • • • + ar là lớn nhất.

Dữ liệu: Vào từ file văn bản SUBSEQ.INP gồm:

  • Dòng thử nhất chứa số nguyên n (1 < n < 106) – số lượng phần tử cúa A.
  • Dòng thứ hai chứa n số nguyên aụ ãi,…, a„ (-109 < ai <109. 1 < i <n).

Kết quả: Ghi ra file văn bản SUBSEQ.OUT gồm:

  • Dòng thứ nhất chứa tổng lớn nhất tìm được.
  • Dòng thứ hai chứa hai số nguyên / và

Các số trên cùng một dòng cách nhau bởi dấu cách. Neu tìm được hơn 1 lời giải thì xuất ra bát kỳ một trong số chúng.

SƯBSEQ.INPSƯBSEQ.OƯT
55
12 12 32 4
…………… HÉT…………………..

•                Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•        Thí sinh không được sử dụng tài liệu.

•       Giám thị không giải thích gì thêm.

 

 

KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2018-2019 Môn: TIN HỌC

Thời gian: 1.50 phút (không kể thời gian giao đề)

Ngày thi: 20/3/2019

(Đề thi có 04 trang, gồm 05 bài)

TONG QUAN CÁC BÀI THI

Tên bàiFile chương trinhFile dữ liệu vàoFi!e kết quả
Bài 1Lễ hội Cà phôCAPE.*CAFE.INPCAFE.OUT
Bài 2Số ưa thíchHKE.*LIKE.INPLIKE.OUT
Bài 3Phuc hồi dãy sốSEỌ.*SEQ.INPSEQ.OŨT
Bài 4Số nguyên tố lớn nhấtPRIME.*PRIME.INPPRIME.OUT
Bài 5Dãy số điều hòaHARMONIC.*HARMONIC.INPHARMONIC.OUT

(Dấu * đưọc thay bỏi PAS hoặc CPP của ngôn ngũ’ lập trình đuọc sử dụng tuoìig ứng vỏ’i Pascal hoặc C++). Hãy lập trình giải các bài toán sau:

 

 

Bài 1: Lễ hội Cà phê (5 điểm)

Ban To chức Lễ hội Cà phê năm 2019 vạch ra một kế hoạch cho các sự kiện sẽ diễn ra trong Le hội. Mỗi sụ’ kiện được Ban Tổ chức dự kiến thời gian diễn ra bao gồm thời gian bắt đầu và thời gian kết thúc.

Yêu cầu: Căn cứ thông tin của Ban Tố chức, hãy xác định thời gian bắt đầu (thời gian bắt đầu của SỊT kiện sớm nhất) và kểt thúc (thòi gian kết thúc sự kiện cuối cùng) của Lề hội, tông thời lượng của các sự kiện (không bao gồm thời gian nghỉ) và tông thòi gian nghỉ.

Dữ liệu: Vào từ file văn bán CAFE.INP có:

  • Dòng đầu tiên chứa một số nguyên n – số lượng sự kiện (1 < n <20).
  • Dòng thứ i của n dòng tiếp theo chứa thông tin về các sự kiện bao gồm: Si là tên của sự kiện (bao gồm các chữ cái không quá 100 ký tự), thời gian bắt đầu của sự kiện là ai và thòi gian kết thúc bi. Thời gian được cho là hợp lệ và theo định dạng hh:mm (không có dấu cách ở giữa) và có giá trị từ 00:00 đên 23:59. Giữa Si và aị có thê có một hoặc nhiêu dâu cách, giữa ai và bi là dấu trừ (-). Mỗi sự kiện chi được tố chức tại một thòi điểm. Một sự kiện không the kéo dài dưới 1 phút.

Kết qua: Ghi ra file văn bản CAFE.OƯT chứa bổn dòng:

Dòng ĩ: Thời gian bắt đầu (thòi gian bắt đầu của sự kiện sớm nhất).

Dòng 2: Thời gian kết thúc (thời gian kết thúc sự kiện cuối cùng).

Dùng 3: Tổng thời lượng của các sự kiện (không bao gồm thời gian nghỉ). Dòng 4: Tống thời gian nghỉ.

Tất cả dữ liệu đầu ra theo định dạng hh:mm.

CAFE.INPCAFE.OUT
310 : 00
Opening 15:20-17:2017 : 20
Speech 10:00-11:0005 : 00
Festival 12:00-14:0002:20

 

Bài 2: Số ua thích (5 điểm)

Bình rất thích các số trong đó không có hai chữ số liên tiếp giống nhau.

Yêu cầu: Với một số nguyên n được cho, hãy giúp Bình tìm sổ nguyên nhỏ nhất, lớn han hon n, mà Bỉnh thích.

l)ữ liệu: Vào từ file văn bản LIKE.INP chứa số nguyên n (1 < n < 1018).

Kết quả: Ghi ra ílle văn bản L1KE.OUT chứa sô nguyên nhỏ nhất lớn hơn n, trong đó không có hai chừ sô liên tiếp giông nhau.

LIKE.INPLIKE.OUT
98101

 

Bài 3: Phục hồi dãy số (4 điểm)

Trong 1 tiết dạv toán, các học sinh đang được giới thiệu về các số nguyên dương. Đê chuân bị cho tiết học, giáo viên viết sẵn các số từ 1 đến n theo thứ tự tăng dần (từ trái sang phải) trên bảng.

Tuy nhiên, có một học sinh nghịch ngợm đã chạy vào lóp học và đã xóa đi một số đã đưọ’c giáo viên viết trên bảng. Đứng trước Hiệu trưởng, học sinh này xưng tên là Nam, học sinh này rất hối hận và nói rằng mình chỉ xóa đúng một số trong dãy số.

Yêu cầu: Hãy giúp giáo viên tìm hiểu xem điều này có đúng không, và nếu có thế, hãy cho biết số nào đã bị xóa.

Dfr liệu: Vào từ file vãn bản SEQ.INP gồm:

  • Dòng đầu tiên chứa số nguvên n – sô lượng số nguyên đã được giáo viên ghi trên bảng (2 < n < 1000).
  • Dòng thứ hai chứa số nguyên m – số lượng số nguyên còn lại trên bảng sau khi học sinh đã xóa (1 < m <1000).
  • Dòng thử ba chứa m số nguyên ai, a2, . . . , am — dãy số nguyên còn lại sau khi Nam đã xóa, theo đúng thứ tự mà chúng đã được ghi trên bảng (1 < ãị < 1000).

Kết quả: Ghi ra fde văn ban SEQ.OƯT theo định dạng sau:

  • Nếu lời giải thích của Nam là hợp lý:
  • Ghi chữ “Yes” dòng đầu tiên.
  • Dòng tiếp theo chứa số nguyên đã bị Nam xóa.
  • Nếu lời giải thích của Nam là không hợp lý: Ghi chữ “No”.
SEQ.INPSEQ.OUT
4Yes
32
13 4

 

Bài 4: Số nguyên tố ló’n nhất (4 điểm)

Một giáo viên Toán muốn kiếm tra kiến thức số học của học sinh lóp mình đang dạy bằng cách như sau: Đầu tiên Ồng giới thiệu với học sinh hai số tự nhiên a vàb. Sau đó yêu cầu học sinh hình thành các sô mới theo quy tăc:

  • Lấy chữ số đầu tiên của số a: Đặt thay cho chữ số đầu tiên của số b, tạo thành một số mới; Đặt thay cho chữ số cuối cùng của số b, tạo thành một số mới.
  • Lấy chữ số thứ hai của số a: Đặt thay cho chừ số đầu tiên của số b, tạo thành một số mới; Đặt thay cho chữ số cuối cùng của số b, tạo thành một số mới.

Tiếp tục tạo các số khác theo quy tắc trên cho đến hết chữ số cuối cùng của số a. (nếu số a có 3 chừ sổ thì sẽ có 6 sổ được tạo thành).

Yêu cầu: Biết hai số a và b, hãy tìm sổ nguyên tố lớn nhất trong các số được hình thành theo quy tắc trẻn (kể cả hai số ban đầu a và b). Neu không tìm được số nguyên tố lớn nhất như yêu cầu ở trên thì hiển thị số lớn nhất có thể (kể cả hai số ban đau a và b).

Dữ liệu: Vào từ fiỉe văn bủn PRIME.INP chứa hai số nguyên a vàb (10 < a, b

< ỉ000000).

Kết quả: Ghi ra tìle văn bản PRIME.OIT chứa số nguyên tìm được theo yêu cầu ở trên.

Ví dụ:

_____ *__________________________________________________ ______________________________________ _

Bài 5: Dãy số điểu hòa (2 điểm)

Trung bình điểu hòa là một trong ba trung bình Pythagoras, hai trung bình kia lả trung bình nhân và trung bình cộng (trong Excel có hàm HARMEAN trả về trung bình điều hòa của một tập hợp dữ liệu)

Ta nói rằng ba số a, b, c theo thứ tự tạo thành dãy số điểu hòa nêu b là trung bình điều hòa của a và c, nghĩa là:

2

a c

Yêu cầu: Biết trước số tụ nhiên b, hãy xác định tất cả các cặp số tự nhiên (a, c) sao cho a, b, c tạo thành dãy số điều hòa.

Dữ liệu: Vào từ file văn bản HARMONIC.INP in chứa một số tự nhiên b.

Kết quả: Ghi ra lìlc văn bản HARMONIC.OUT chứa ở dòng đẩu tiên một số tự nhiên n cho biết cho số cặp số tự nhiên (a, c) trong đó b là giá trị trung bình diều hòa. n dòng tiếp theo sẽ hiến thị các cặp số (a, c) tìm được (chúng cách nhau bởi một dấu cách).

Hạn chế và hru ỷ:

  • 1 < b < 10°;
  • Các cặp số trong file kêt quả có thê được hiến thị (heo bất kỳ thứ tự nào;
  • Neu b là trung bình điều hòa giữa hai số khác nhau a và c thì các cặp (a, c) và (c, a) được coi là lời giải riêng biệt.
HARMONIC.INPHARMONIC.OƯTGiải thich
33số 3 là trung bình điều
3 3hòa của số 3 và 3. Ta có
dãy số điều hòa (3, 3,
2 63)
6 2Số 3 là trung bình điều
hòa của số 2 và 6. Ta có
các các dãy số điều hòa
(2,3,6) và (6,3,2)
————- Hét ——————–

•                Các tập tin chuvng trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•       Thí sinh không được sử dụng tài liệu.

•       Giảm thị không giải thích gì thêm.

 

 

 

KỲ THI CHỌN HỌC SINH GIỎI CẢP TINH TRƯNG HỌC CO SỞ, NÃM HỌC 2020-2021

Môn: TIN HỌC

Thời gian: 150 phút (không kê thời gian giao để)

Ngày thi: 31/3/2021

(Đê thi có 04 trang, gồm 05 bài)

TỎNG QUAN CÁC BÀI THI

Tên bàiFi!e chuông trìnhFile dữ liệu

vào

File kết quả
Bài 1Số kết đôiNUM.*NUM.INPNUM.OUT
Bài 2World cupCUP.*CUP.INPCUP.OƯT
Bài 3Phần tư điên hìnhPART.*PART.1NPPART.OUT
Bài 4Đặt mật khẩuPW.*PW.INPPW.OUT
Bài 5Sự lây lanCOVID.*COV1D.INPCOVID.OUT

 

Dấu * được thay thế bời PAS, CPP hoặc PY cứa ngôn ngữ lập trình được sử dụng tương ứng là Pascal, C++ hoặc Python.

Bài 1: Số kết đôi (5.0 điểm)

Số nguyên dươna X được gọi là số kết đôi nếu như có thê tim thấy hai số nguyên a, b thoa mãn các điều kiện:

  • ì < a < b < X

, _        , a 1

  • X è = X và – > —

b 2

Yêu cầu: Hãy xác định một số nguyên cho trước có là số kết đôi hay không?

Dữ liệu: Vào từ file văn bản NUM.INP chứa số nguyên X (1 < X < 215).

Kết quả: Ghi ra file văn bản NUM.OƯT chứa số 1 nếu X là số kết đôi, ngược lại ghi số 0.

Bài 2: VVorld cup (5.0 điêm)

Liên đoàn Bóng đá Ọuốc tế (FIFA) đã ấn định ngày khai mạc World Cup 2022. Đội chủ nhà Qatar sẽ đá trận đầu tiên trong ngày khai mạc là ngày 21/11/2022.

Phương đang sống ờ Việt Nam, rất dam mê bóng đá và mong chờ được xem lễ khai mạc.

 

Yêu cầu: Hãy giúp Phương tính xem kể từ một mốc thời gian ngày, còn bao nhiêu ngày nữa là đến lễ khai mạc. Ví dụ, mốc thời gian là ngày hôm nay, nếu lễ khai mạc là ngày mai, thì sẽ còn 1 ngày nữa. Cho biết:

a) Số ngày trong 1 tháng:

Tháng123456789101112
Số ngày3128 (29 nếu là năm nhuận)31303130313130313031

b) Năm nhuận:

 

 

Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 mà không chia hết cho 100. Ví dụ, năm 1800 không phải là năm nhuận; năm 2016, 2000 là năm nhuận.

Dữ liệu: Vào từ íile văn bản CUP.INP chứa 1 xâu cho biết mốc thời gian ngày cần tính theo định dạng “dd.mm.vyyy”. Trong đó dd là ngày có giá trị từ 01 đến 31, nim là tháng có giá trị từ 01 đến 12, yyyy là năm có 4 chữ số. Dừ liệu ngày cho là hợp lệ. Kết quả: Ghi ra tìle văn bản CƯP.OUT chứa số ngày sẽ đến lễ khai mạc FIFA World Cup 2022.

Bài 3: Phần tử điển hình (4.0 điềm)

Cho trước một mảng có n phần tử A = [ai, a2,…, an]. Phần tử a, được gọi là điển hình nếu tồn tại một cặp chí số L và R (1 < L < R < n) sao cho aj = aL + aL+i +…+ aR. Nói cách khác, một phần tử được gọi là điển hình nếu nó có thể được biếu diễn dưới dạng tông của hai hoặc nhiều hơn các phần tử liên tiếp của một mảng.

Yêu cầu: Đem số phần tử điển hình cua mảng đã cho A.

Ví dụ, nếu n = 9 và A = [3, 1,4, 1, 5, 9, 2, 6, 5] thì số phần tứ điển hình của A là 5, cụ thê:

  • a3 = 4 là phần tử điển hình, vì a3 = 4 = ãị + a2 = 3 + 1;
  • a5 = 5 là phần tử điển hình, vì a5 = 5 = a2 + a3 = 1 + 4;
  • a6 = 9 là phần tử điển hình, vì a6 = 9 = ai + a2 + a3 + a4 = 3 +   1 + 4 + 1;
  • a8 = 6 là phân tử điển hình, vì a8 = 6 = a2 + a3 + a4 = 1 + 4 +     1;
  • ãg – 5là phần tử điên hình,vì ay = 5 = a2 + a3 = 1 +

Lun ý rằng các phần tử của mảng A có thế bằng nhau nên nếu có một số phần tử điển hình mà bằng nhau thì tất cả chúng sẽ được đếm.

Dữ liệu: Vào từ íìle văn bản PART.INP gồm:

  • Dòng đầu tiên chứa số nguyên n là số phần tử của mảng A (1 < n < 8000).
  • Dòng thứ hai chứa n số nguyên cách nhau bởi dấu cách ax, a2,…, an

(1 < al < n).

Kết quả: Ghi ra file văn ban PART.OUT chứa số phần tử điển hình cua mang đã cho.

PART.INPPART.OUT
9

314159265

5

 

Bài 4: Đặt mật khấu (4.0 điểm)

Quên mật khẩu Facebook, Gmail, Zalo… là việc thuờng xảy ra khi chúng ta phải đàng nhập rất nhiều tài khoản hằng ngày. Bên cạnh việc tạo mật khẩu mạnh là việc làm thế nào mà bạn có thế nhớ nhùng mật khâu đã tạo. Một người dùng internet nghĩ ra cách tạo một mật khấu mới như sau: Mật khẩu mới là mật khâu chỉ khác các mật khẩu mà anh ta đã có (tạo ra hoặc được cung cấp) nhiều nhất 1 vị trí.

Yêu cầu: Với n xâu s 1 ,s2,- – •, Sn cho trước, các xâu đêu có cùng độ dài m. Hãy tạo xâu mật khấu mới p sao cho mỗi xâu tronc sô n xâu đã cho khác xâu p không hơn một vị trí. Hay nói cách khác, với mồi xâu Si không có hơn 1 vị trí j sao cho Sj[j] V

PDL

Lưu ý: Xâu p mong muốn có thê bằng một trong các xâu Si đã cho, hoặc nó có thể khác với tất cả các xâu Si đã cho.

Dữ liệu: Vào từ file văn bản PW.INP gồm:

  • Dòng đầu tiên chứa hai số nguyên nvàra (n: số xâu; m: độ dài mỗi xâu; 1 < n, m < 10).
  • Dòng thứ i trong n dòng tiếp theo chứa xâu Si, có độ dài m và chi chứa các chữ cái in thường (‘a’..‘z’).

Kết quả: Ghi ra file văn bản PVV.OƯT

  • Nếu bài toán có lời giải: Ghi xâu p có độ dài m và chỉ chứa các chữ cái in thường (‘a’..‘z’). Nếu bài toán có nhiều lời giải: Ghi bất kỳ xâu p nào thỏa mãn.
  • Nếu bài toán không có lời giai: Ghi số -1.
PW.INPPW. OUT
2 4abab
abac
zbab

 

Bài 5: Sụ lây lan (2.0 điểm)

Covid-19 lây lan phô biến nhất khi tiếp xúc gần. Những người ớ gần với người mắc Covid-19 hoặc tiếp xúc trực tiếp với người đó sẽ có nguy cơ lây nhiễm cao nhất.

Giả sử có n người (được đánh số từ 1 đến n) đang ở trên 1 con đưòng trong thành phố. Có thê xem vị trí của họ là những điểm trên trục tọa độ Ox. Với mồi chỉ số i, vị trí cua người thứ i là Uj.

o                               a,             a:                            aj                                34 X

  • —— I—– 1—- +—– t—- t—– 1—– +—– t——- í—– >

0         1234 5 6789

Theo thông báo của cơ quan Y tế , trong n người này có đúng một người đã bị nhiễm Covid-19, nhưng chưa biết đó là ai. Biết rằng, vi-rút sẽ lây lan từ người bị nhiễm sang người không nhiễm bệnh khi khoảng cách tối đa giữa họ bằng 2.

Một người bị nhiễm bệnh sẽ lây nhiễm cho người khác theo hiệu úng tiếp xúc gần. Nhóm người bị nhiễm bệnh này được gọi là tập hợp ngưòi nhiễm bệnh cuối cùng.

Yêu cầu: Hây tìm ra số nhỏ nhất và số lớn nhất những người bị nhiễm cuối cùng, tức là tìm ra con số này trong trường hợp tốt nhất và trong trường hợp xấu nhất có thể

xảy ra.

Dữ liệu: Vào từ file văn bản COVID.INP gồm:

  • Dòng đầu tiên chứa số nguyên n là số người trên đường (1 < n < 100).
  • Dòng thử hai chứa n số nguyên ai, a2, …, an cách nhau bởi dấu cách. Biết rằng 0 < a, < 100.

Kết quả: Ghi ra file văn bản COVID.OƯT chứa hai số nguyên cách nhau bởi dấu cách cho biết số nhỏ nhất và số lớn nhất những người có thê bị nhiễm cuối cùng.

COVID.INPCOVID.OUT
21 1
3 6
33 3
13 5

 

———————————————— HẾT———————————————— ——– :

■ Các tập tin, chương trình phai đặt theo đúng quy định (ca phần tên và phần mở rộng).

Thí sinh không được sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Họ và tên thí sinh:…………………………….. số báo danh:………………………………………………………

 

KỶ THI CHỌN HỌC SINH GIỘI CÀP TỈNH [RUNG HỌC Cơ Sớ NSm liợc 2021-2022

Môn: TIN HỌC

Thòi gian lảm bài: 15(1 Ịiluìt íkhông kẽ ỉ hởi gian giao đè) Ngáy ihi: 22/03/2022 ị De thi cỏ 04 trang, gồm 05 bùi)

tông ouàn cắc bãi thi

Tèil bàiỉ ilt thương trìnhKilt dữ liựu vàoHiu két quỉ
Bâi 1.SỚ NGUYÊN TỒ DÃY DỨKULLPRIMAKULLPH.JM.LNPí ULLPR.IM.OUT
lỉúi 2.MẶT MẢSIiCRCODE*SECRƠODL.INPSLCRCODL.OUT
Bài 3,CHON PHẢN THƯỞNGBONUSSiiL-*BONLSSLL.INPBỜNUS.SEL.OUT
Bài 4,TAM GIACTR1ANGLE.IRÍANGLL 1NPTR1ANGLL.OUT
tỉai 5.LẢI KLP NGAN HÀNGCOM PIN TACOMPlNTdNPCOMPLNT.OUT
Dổu * dược thay thề bới PAS, CPPt py cún ngôn ngừ tập trình được Sti dạng tương ứng tù PùỊCữl, £.’++, Pyihún hoặc phần mớ rộng tương ửng v&ĩ M:\LT khác.

 

 

Dải I: SỎ NGUYÊN TỞ BẦY DV (4.Ộđiềm)-TỄn thương trhMỈa: FULLP(tlM/ hỉuìỉ niệm:

  • **sỏ HgĩtyỀn tố ‘,ỳ: sắ itgụyỂn dương p (p > ĩ) là sỗ nguyện tỏ khi p chi cù hai ước sỗ ỉà ỉ và chinh nỏ.
  • 4,1 Sổ nguyên tể dầy dù”. Là sé ngụyẻn lổ mủ khỉ viẻt đàơ ngược sẬ đò thi sổ đáo ngược Vần Ịà sa nguyên tà. Vi dụ: Sâ Í3 lá liSữ ĩtguyỂn tổ dãy dii” vỉ khi đặo ntược sô 13 La dược sả31 cEtìg.íè sổ ũgtiy£n lổ, sẶ 53 khủng pliái lá “íd nguyên tổ dầy dù” vl khi dáo ngược sả 53 La được 9ổ 35» và 35 khômỉ phui Jả s6 nguyên lố.

Yeu tầu: Hăy vhk chương ưinh kicm tra trang dằy 5′ sả nguyên dương ù ị cho ưước cù nhữn£                                                                          sỏ

náo Lá **Í1Ử ngiẹyẽn lủ đảv đu’.

I)ữ litií vầo: Đtíợc cbo traÉỊg lộp văn ban KULLPRIM.ÍNPị gồm 2 dóng.

  • Dõng dâu liỏn ghi so .’V ị ì <jV <iỉ(f), lá Sủ phân tư của dẫy.
  • Dùng thứ hai ghi N sả ngưyÊn dưímg ữị {i=l..\. 2 <ứi ệ iũlw), moi số tách nhau bói dảu

cách.

Dứ iiệu ra: Tệp văn hán KULLPKI.M.OI T gốm một dóng thừa dảy ,li’L> nguỳện té đầy du” trơn lì LÍp dừ liệu vào. NẾu trang diy ùi khớmì cộ “iYJ lĩgưyỂn té đầy du” [hi gbi lá 0,

Ví dụ:

Mòn Tín taọẹ_22WV2tì22_Tr»ns 1/4

 

Bàl 1: MẠ í MÃ (4,0 điểm) – TỀH chương trình: SECRCODE.*

]’rong đợt căm trại Mừng Dáng Mừng Xuân, trưùựg THCS 26/3 lủ chức phát thướng cho nhừna học sinh có ihãnh tích cao trong cuộc thi rin học líé. Bạn An dược mọt cỏniĩ ty ABG thưởng phẩn iỊjềm diẹt viniB 1A một thè cù chùa mà hán quyền. Tiên thê cỏ ghi một ỊÍẾU hi tự, mả bán quyền lủ so lượng ki Lự xuái hiện ưong xâu dó theo thứ tự uiphabet (thử tụ lir đien).

Vi dụ: Neư xâu ghi trên ihc lá abzaabbbbbzbbbb [hi có 3 kỉ lự ít, ]|j kỉ tự b vả 2 ki lự r. Nên mà bán quyẾũ lá 3 102.

YÊU cầu: Bạn lú chuvdn VÍCII về lập trinh Lin học, hây ưiÍLp An tim mâ hun quyỂn trẽn [hè.

L>ữ liệu váo: Dược cho trưng tcp ván bán SECItCODE.INP lá một xâu (chửa ki lự thướng ‘Ả.:i trong bâng chữ cái ‘L iệng Anh, chiều dái của xáu khỏng quá lữ1)

Dứ liệu ra: Tệp vãn bán SECkCODE.OUT, ưhi chuồi sắ Lú mã bún quyên.

Vi dụ í

SECRCODE.1NPSECRCODE.OLT
bcỉi{hiiicfxyzhbbcccccỉỉceeex\:xyzzz246351334

 

Giúi thích. Chuồi củ 1 kỉ lự ÚT, 4 ki tự b. 6 k[ Lự c> 3 ki lự íỉf 5 ki Lự e, 1 ki tư£ 3 ki lự JC, 3 kE [ự y vá A kí lự z ncn mả bán quyên Lú 246351334.

Bùi 3: CHỌN THAN THƯỞNG (4.0 điếm) – TỄn chương trinh: BQMlSSEL.*

Trong ký thi học sinh gioi L HCS cáp huyện mủn Toán, trong nỏi dung dề có nói VẺ $fỉ chính ph ương ‘ lá sỏ bãỉig bình phương đúng cua một sổ nguyên. i ỉar hỉàíi đơn gúin, sổ chinh phìỉiĩỉỉg lả một sổ tự nhiên cỏ căn bậc hai cùng ià mật sâ tự nhiên. Bạn An dược giái nhất trong kỷ thi đó, thày Thú giáo viẻn dạy toán hoi dưrtng cho An cỏ phằn ihuứng dặc hiệt cho An, dòng ihới cũng muốn kiềm tra kiến thức toản và lư duy vc lập Irinh tin học cũa An như the nèo đẻ dịnh hướng bạn di ngành CNTT Lrong thửi dại cồng mìhc 4.0. ĩhầy yẾu cẳu An chọn nhừng phần thướng má thấy dã xếp ưèn bán thánh l bán tỉ ịĩỉiíỉ trận) gom m dóntĩ vả n CỘI, mi^i phản ihướniì có aiá trị neuvén dương pỊị, (ỉ< Oỹ<Ị0 Phần thưởng An nhặn dưực lá piông tát cá các “Só chỉnh pỉnrơng” cũa báng,

YẾU càu: Hạn bây Lặp trinh eiũp An nhịn phẩn thướng.

DữUệu vàn: Được cho Lrong tọp vin hun BQNUSSEL.INP gèm:

  • Dõng dầu ticn chứíi 2 sả ngu vón dương ỉti, n (2 <tĩt, n < ÍOrị, Là sơ dõng vú CỘI cùa bang phằn thướng, lách nhau bôi một diu cách.
  • tn dóng licp theo, moi dỏng chừa n số nguyẫn dương ữịị (j-lJ,fFỉ,ý=l..jỉ)1 mội sỏ lách nhau bới một dấu cảch.

Dử ILẹu ra: Tệp vân bán BONLiSâEL.QUT ghi mộl sả, Lá phần ihướng mả An được ihảy thương

Vỉ dụ:

BONUSSEL.INPBỘN USSEL.ÓƯT
234
2 3 4
357

 

 

3535
123
í 5 16
7H9
Hài 4: TAM GIÁC (4.Ũ đìẻtìi) – TỄn chương trình: TKIANGLE.*

 

Kỉìủĩ nĩệiìt :

  • ‘ Tam giỉtL \ Trơna mát phiìne, ba tiiéiíì A„ B„ c lạo ihánb tam giác khi ctmúng khòm; củng nầm trỂn mọi đưimg [hãng hay nbi cách khác, lơn£ dợ dãi hai cạnh JcVn bơn cạnh thứ ba.
  • “Định lý Pĩtagù’. I’am giác ABC vudng khi Lorití binh phương hai cạnh Cua lam ai ác bảng bình phương cạnh cỏn lại của Lam giác.
VI dự:

cA, B. c là 3 đinh cửa tam giác * A, li, c khũmỉ cúng năm trcn dường ihărtg d
d….&AB+ BC > AC và Alỉ + AC > BC vả 8C + ẠC >ẬB.
A**■ TVun giác ABC tà fattì giác vnâỉig tiiĩ (tinh c

& AB: = AƠ + iiơ

YẾU cầu: Lrẻn mầl phàng tọa dụ (OXY) chu 3 dicmẢ, Bị c cũ Lọa dt) lần lượt hì (íi.Xth (xstysị, ‘ệtc;yc)- Bạn hây lập trinh kiểm tra 3 đinh đó tạo thánh tam giác V uũng không?

 

 

Líừ IĨCIL vào: Buợc chu ưung ọp vàn hán TRlANGLL.INP gầm:

  • Dõng dằu II cn chứa Sơ nguyên dương 7\ lủ sầ tượng bộ ba đicm .4, 8, c
  • 7’dàng Licp theo. mồi dửng ehi lụa độ 3 đicm A(xA;yA)ị B{xs;yBL C(xctyc), (các So %A -VjỊf, y-B Jtũ yc lá các su thực và -lO^í yA Xgt ys %c yc ^lO1), các: sỏ Lảcb nhau búi dắu cách.

L>ừ licu ra: Tệp vãn ban TỉtlANGLb.OlJ l, yhi T dùng, mui dỏng gbi ưYES” nẺu lá tam giảc vuông hí lặc “NIO'” nẾu không hi Lam giác vuông.

Ví dụ:

TRIANGLE.INPtriangle,out
iNO
0.0 0.0 LO l.u 2.0 2.0YES
ềJữ 0.0 0.0 iừ.o 0.0 0.0NO
1.0 2.0 3.5 ktì 1.0 2.0

 

Lim Ỷ’ + Binh phương khơáns cách giừa 2 di êm A(XÀy\i) vả lì(.\-B;vsỉ lá

>íBi = (jraJ>;!+(yJ->’J>1

+ Oc hạn ehc sai sớ Ironiĩ [inh toán ki cu sà thục, học sinh nành việc lẩy cần bậc 2 rơi binh phương cùa cfin bậc 2.

Bài 5: LÃI KÉP NGÂN HÀNG (4.0 điểm) – Tên chương trình: COMPINT.*

Khái niệm: “Lãi kép” trong tiếng Anh là Compound interest. Đó là số tiền lãi được xác định dựa trên cơ sở số tiền lãi của các thời kì trước đó được gộp vào vốn gốc để làm căn cứ tính tiền lãi cho các thời kì tiếp theo.

Ông Ba sau khi tích lũy làm ăn nhiều năm dư được 1 số tiền lớn, để tiêu vặt và đóng tiền học phí hàng tháng cho An, Ông đã gửi ngân hàng với lãi suất nhận hàng tháng (Lãi đơn). Do trong đợt dịch Covid-19 vừa qua, để hạn chế tiếp xúc và ra ngân hàng đông người, Ông đã thay đổi hình thức gửi ngân hàng thành hình thức “Lãi kép’’”.

Yêu cầu: Với số vốn ban đầu là M, lãi suất hàng tháng là r%. Bạn hãy lập trình tính tổng số vốn và tiền lãi sau n tháng mà ông Ba nhận được theo hình thức “Lãi kép”.

Dữ liệu vào: Được cho trong tệp văn bản COMPINT.INP:

  • Dòng đầu tiên là số nguyên T (1<=T<=1000) ^
  • T dòng tiếp theo, mỗi dòng gồm 3 số M, r, n lần lượt là tiền vốn ban đầu, lãi suất %/tháng, số tháng. Trong đó, 106 <M <1012, 0.1< r <1.1, 1< n < 5*102.

Dữ liệu ra: Tệp văn bản COMPINT.OUT ghi một số thực, định dạng 1 chữ số thập phân, là tổng số tiền nhận được sau n tháng.

Ví dụ:

Giải thích. Ông Ba gửi 2 khoản tiết kiệm như sau:

Ở khoản tiết kiệm 1: Ông Ba gửi 1000000, với lãi suất 0.7%:

  • Sau 1 tháng. T = M + M*rl100 = 1000000+1000000*0.007=1007000.0
  • Sau 2 tháng. ĩ2 = T + Ti*rl100 = 1007000+1007000*0.007 = 1014049.0
  • Sau 3 tháng. T = T2 + T2*rl100 = 1014049+1014049*0.007 = 1021147.3 Tương tự, ở khoản tiết kiệm 2: Ông Ba gửi 10000000, với lãi suất 0,5%:
  • Sau 1 tháng. Ti = M + M*rl100 = 10000000+1000000*0.005=10050000.0
  • Sau 2 tháng. T = T + T1*rl100 = 10050000+10050000*0.005=10100250.0
  • Sau 10 tháng. Tio = T + T9*rl100 = 10459105.8+10459105.8*0.005=10511401.3

———————————————– hét———————————————–

Thí sinh không đqợc sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Họ và tên thí sinh. …………………………………………… Số báo danh : ……………………………………………………………

 

 

 

Tên và chữ ký Cán bộ coi thi 1

Tên và chữ ký Cán bộ coi thi 2

 

KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
TRUnG học Cơ Sở

Năm học 2022-2023 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 21/3/2023 ^

(Đề thi có 5 trang, gồm 5 bài)

TỔNG quan các BÀi thi

Thứ tựrpA I A •

Tên bài

File chương trìnhFile dữ liệu vàoFile kết quả
Bài 1Tương đồngSAME.*SAME.INPSAME.OUT
Bài 2Tách xâuSTRING.*STRING.INPSTRING.OUT
Bài 3May mắnLUCKY.*LUCKY.INPLUCKY.OUT
Bài 4Tam giácTRIANGLE.*TRIANGLE.INPTRIANGLE.OUT
Bài 5Chở hàngGOOD.*GOOD.INPGOOD.OUT
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.

 

 

Bài 1: (4 điểm) Tương đồng                                                                                                     Tên chương trình: SAME.*

Vườn bưởi nhà Alice có n cây. Để theo dõi sự phát triển của các cây bưởi của mình, Alice thường xuyên đo và ghi lại chiều cao của chúng. Trong tuần này, Alice có được bảng chiều cao của các cây bưởi là một dãy số nguyên a[1], a[2],…, a[n], trong đó a[i] là chiều cao của cây bưởi thứ i. Nhìn vào dãy số, Alice biết có những cây có chiều cao trùng nhau và Alice gọi mỗi tần số trùng nhau là tần số “tương đồng”.

Do số lượng cây bưởi nhiều nên Alice muốn nhờ các bạn lập trình tìm tần số tương đồng lớn nhất của các cây bưởi là bao nhiêu?

Dữ liệu vào: Đọc từ file SAME. INP gồm 2 dòng:

  • Dòng 1: gồm một số nguyên dương n (0 < n <106).
  • Dòng 2: gồm n số nguyên dương a[i] (0 < ai <106), mỗi số ứng với chiều cao của một cây bưởi, giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file SAME.OUT gồm duy nhất một số nguyên dương là tần số tương đồng lớn nhất.

Ví dụ:

SAME.INPsame.out
7

9 8 6 8 5 6 10

2
2

3 10

1

 

Giải thích bộ test 1:

Có 1 chiều cao: 5;

Có 2 chiều cao: 6;

Có 2 chiều cao: 8;

Có 1 chiều cao: 9;

Có 1 chiều cao: 10

->Tần số tương đồng lớn nhất là: 2

Bài 2: (4 điểm) Tách xâu                                                          Tên chương trình: STRING.*

Hôm nay, mẹ và Cám đi dự dạ hội. Tấm cũng rất muốn được đi. Nhưng trước khi đi, mẹ Cám giao cho Tấm một công việc để làm khó Tấm như sau:

Cho một xâu s gồm các ký tự là các chữ cái in hoa hoặc in thường (trong bảng chữ cái Tiếng Anh) và các kí tự số. Mẹ kế yêu cầu Tấm hãy tách các ký tự trong xâu s thành hai phần như sau:

Phần 1: gồm các chữ cái có mặt trong s nhưng viết theo thứ tự ngược lại.

Phần 2: gồm các chữ số có mặt trong xâu s nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Nếu Tấm thực hiện xong công việc thì mới được đi dự tiệc. Nhưng Tấm có thời gian rất ít nên chưa giải được bài toán. Các bạn đội tuyển Tin học hãy giúp đỡ Tấm giải bài toán để Tấm còn được đi dự tiệc nhé!

Dữ liệu vào: Đọc từ file STRING.INP gồm 1 dòng chứa xâu s có độ dài không quá 103 ký tự. Dữ liệu vào đảm trong xâu s luôn có kí tự chữ cái và kí tự chữ số. Kết quả: Ghi ra fíle STRING.OUT gồm 2 dòng:

  • Dòng 1: gồm các chữ cái trong xâu s nhưng được viết theo thứ tự ngược lại.
  • Dòng 2: gồm các chữ số trong xâu s, nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Ví dụ:

STRING.INPSTRING.OUT
m2aC0ma2T3TamCam

0223

 

Bài 3: (4 điểm) May mắn                                                          Tên chương trình: LUCKY.*

Trong buổi tiệc liên hoan cuối năm của công ty cung cấp điện thoại Thế Giới Trẻ, ghế ngồi trong hội trường của khách mời được bố trí thành một ma trận hình chữ nhật gồm m hàng và n cột. Để buổi liên hoan thêm vui vẻ, ban tổ chức cho mỗi khách mời rút ngẫu nhiên một phiếu, trên phiếu có ghi một số nguyên dương trong phạm vi từ 1 đến 109.

Ban tổ chức sẽ trao cho những người may mắn mỗi người một phần quà là một chiếc điện thoại. Biết rằng người may mắn là người có số ghi trong phiếu của

mình lớn hơn trung bình cộng của số trong phiếu của những người ngồi xung quanh người đó.

Xung quanh một người được định nghĩa như sau:

Trường hợp 1: Người ngồi ở vị trí góc (trên trái, dưới trái, trên phải, dưới

phải) của hình chữ nhật thì chỉ có 2 người ngồi xung quanh.

Trường hợp 2: Người ngồi ở vị trí bìa (trừ góc) thì có 3 người xung quanh. Trường hợp 3: Người ngồi ở các vị trí còn lại có 4 người xung quanh.

 

Trường hợp 1                                   Trường hợp 2                                                          Trường hợp 3

Ô gạch sọc chỉ vị trí xung quanh của vị trí được tô đen.

Bạn hãy giúp ban tổ chức xác định số lượng điện thoại cần phải chuẩn bị để trao cho những người may mắn.

Dữ liệu vào: Đọc từ file LUCKY.INP gồm:

  • Dòng 1: gồm hai số nguyên dương theo thứ tự m, n (0 < m, n <103), giữa m và n được cách nhau bởi dấu cách.
  • m dòng tiếp theo, mỗi dòng gồm n số nguyên dương có giá trị không quá 109, giữa hai số cách nhau bởi một dấu cách.

Kết quả: Ghi ra file LUCKY.OUT gồm một số nguyên là số điện thoại ban tổ chức cần chuẩn bị.

Ví dụ:

LUCKY.INPLUCKY.OUT
3 43
1 4 3 1
1 1 5 2
2 1 2 1

 

Giải thích:

Số lượng điện thoại cần chuẩn bị là 3, vì có ba người may mắn:

+ Người thứ nhất ngồi ở hàng 1, cột 2, có số phiếu là 4 (có 3 người xung quanh) + Người thứ hai ngồi ở hàng 2, cột 3, có số phiếu là 5 (có 4 người xung quanh) + Người thứ ba ngồi ở hàng 3, cột 1, có số phiếu là 2 (có 2 người xung quanh)

Bài 4: (4 điểm) Tam giác                                                  Tên chương trình: TRIANGLE.*

Alice có n que tính, mỗi que có độ dài là một số nguyên dương. Alice muốn tạo ra các tam giác bằng cách ghép ba que tính lại với nhau, độ dài mỗi cạnh là một que tính.

Em hãy giúp Alice đếm xem có bao nhiêu tam giác được tạo thành từ các que tính này và cho biết diện tích lớn nhất trong các diện tích của các tam giác ghép được là bao nhiêu?

Biết rằng:

+ Hai tam giác được gọi là khác nhau nếu có ít nhất một que tính khác nhau.

+ Ta có thể tính diện tích tam giác theo công thức sau :

s=Vp * (p — à) * (p — b) * (p — c)

Trong đó a,b,c là độ dài 3 cạnh của tam giác, và p là nửa chu vi của tam giác.

Dữ liệu vào: Đọc từ file TRIANGLE.INP gồm:

  • Dòng 1: gồm một số nguyên dương n (3 < n < 100)
  • Dòng 2: gồm n số nguyên dương a[1], a[2], …, a[n] là độ dài của n que tính (1 < a[i] < 106 1<i<n). Giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file TRIANGLE.OUT gồm:

  • Dòng 1: Ghi số lượng tam giác có thể ghép được.
  • Dòng 2: Ghi một số thực là diện tích lớn nhất của tam giác, kết quả làm tròn đến 2 chữ số ở phần thập phân. Trường hợp không có tam giác nào thì dòng này ghi -1.
TRIANGLE.INPTRIANGLE.OUTGiải thích
53Có 3 tam giác được tạo từ 5 que tính trên:
1 4 5 2 36.00Tam giác 1: Que thứ 2, 3, 4 Tam giác 2: Que thứ 2, 3, 5 Tam giác 3: Que thứ 2, 4, 5 Trong đó tam giác thứ 2 có 3 độ dài là 4 5 3 có có diện tích lớn nhất là 6.00
44Có 4 tam giác được tạo từ 4 que tính trên:
2 2 2 21.73Tam giác 1: Que thứ 1, 2, 3

Tam giác 2: Que thứ 1, 2, 4

Tam giác 3: Que thứ 1, 3, 4

Tam giác 4: Que thứ 2, 3, 4

Trong đó 4 tam giác đều có cùng diện

tích là: 1.73

30Không ghép được tam giác nào
1 2 3-1

 

Bài 5: (4 điểm) Hàng hóa                                                            Tên chương trình: GOOD.*

Cửa hàng tạp hóa XYZ cần chở n kiện hàng giao cho khách. Kiện hàng thứ i có trọng lượng là a[i] tấn. Cửa hàng có một xe tải có trọng tải là m tấn. Trong

chuyến hàng đầu tiên, cửa hàng muốn chở những kiện hàng đi giao thỏa mãn các yêu cầu sau:

  • Yêu cầu 1: Ưu tiên kiện hàng có trọng lượng lớn hơn sẽ được chở đi.
  • Yêu cầu 2: Xe còn đủ trọng tải chở được thì chọn tiếp kiện hàng khác thỏa mãn yêu cầu 1.

Em hãy lập trình giúp cửa hàng xác định trọng lượng các kiện hàng của chuyến xe đầu tiên.

Dữ liệu vào: Đọc từ file GOOD.INP gồm hai dòng:

  • Dòng 1: gồm số nguyên dương n (1 <n<103) là số kiện hàng và số nguyên dương m (0 < m < 109) là trọng lượng của xe tải. Giữa n và m được cách nhau bởi dấu cách.
  • Dòng 2: gồm n số nguyên dương a[i] (0 < a[i] <109, a[i] < m, 1<i<n) thể hiện trọng lượng của kiện hàng thứ i. Giữa các số được cách nhau bởi dấu cách.

Kết quả: Ghi ra file GOOD.OUT các số nguyên dương là trọng lượng của các kiện hàng trong chuyến xe đầu tiên theo trọng lượng giảm dần.

GOOD.INPGOOD.OUT
5 10

7 5 1 3 8

8 1
5 12

2 8 2 4 1

8 4

 

Giải thích bộ test 1:

Có n = 5 kiện hàng và xe có trọng tải m = 10 tấn Các kiện hàng có trọng lượng lần lượt là: 7 5 1 3 8 Vậy các kiện hàng được chở đi trong chuyến đầu tiên có trọng lượng lần lượt là 8 và 1.

Vì kiện hàng có trọng lượng là 8 lớn hơn trọng lượng các kiện hàng còn lại và 8 < m=10 nên được ưu tiên chọn. Trọng tải xe còn có thể chứa được là 10 – 8 = 2, nên chọn tiếp kiện hàng có trọng lượng là 1.

………………………………………………….. HẾT…………………………………………………..

Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.

Họ và tên thí sinh: ……………………………………………………………………………….. Số báo danh:……………………………………………………………………..

 

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIỀN GIANG                                                              TRUNG HỌC cơ SỞ

Năm học 2012-2013 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 27/3/2013 (Đề thi có 02 trang, gồm 05 bài)

Hãy ỉập trình giải các bài toán sau:

Bài 1: Chuyển đổi thang đo (5 điểm)               Tên chương trình: DOI.PAS

Một nhà khoa học có ba loại nhiệt kế sử dụng các thang đo nhiệt độ khác nhau: một chỉ độ Celsius (C), một chỉ độ Fahrenheit (F) và một chỉ độ Kelvin (K). Trong thí nghiệm của mình, ông đã sử dụng cả ba loại nhiệt kế và ông cần một máy tính để nhanh chóng chuyển đổi giữa các loại này. Biết công thức chuyển đổi là:

F = –C + 32
5

K = c + 273.15

Yêu cầu: Đọc vào số đo và đơn vị đo nhiệt độ, hãy chuyển đổi sang các đơn vị đo còn lại.

Dữ liệu: Vào từ file văn bản DOI.INP gồm 1 dòng chứa số thực (biểu diễn số đo nhiệt độ) và đơn vị đo nhiệt độ cần chuyển (là một trong các chữ cái F, c, K). Các số này cách nhau bởi dấu cách.

Kết quả: Ghi ra file văn bản DOI.OUT gồm 3 dòng chứa các thông tin theo thứ tự: Nhiệt độ F, Nhiệt độ c, Nhiệt độ K.

DOI.INPDOI.OUT
20 cNhiet do F Nhiet do c Nhiet do K68

20

293.15

 

Bài 2: Đếm số 0 (3 điểm)                                   Tên chương trình: ZERO.PAS

Tìm độ dài xâu con dài nhất chứa các số 0 liên tiếp trong 1 xâu cho trước.

Dữ liệu: Vào từ file văn bản ZERO.INP gồm 1 dòng chứa xâu chỉ gồm các kí tự 0 và 1 (không cách nhau bởi dấu cách). Độ dài xâu không quá 100.

Kết quả: Ghi ra file văn bản ZERO.OƯT chứa độ dài xâu con dài nhất chứa các số 0 liên tiếp.

ZERO.INPZERO.OUT
001011100001104

 

Bài 3: Xóa kí tự (5 điểm)                                   Tên chương trình: XOAKT.PAS

Viết chương trình xóa kí tự thứ n của xâu s cho trước. Các kí tự trong xâu s được đánh số thứ tự từ 1, từ trái sang phải.

Dữ liệu: Vào từ file văn bản XOAKT.INP chứa 1 dòng theo thứ tự gồm 1 số nguyên N, dấu cách, xâu s chỉ chứa các kí tự ‘a\.’z’, ‘A\.’Z\ số N không vượt quá độ dài của xâu s đã cho. Độ dài của xâu s không vượt quá 80.

Bài 4: Tìm số âm (5 điểm)                                    Tên chương trìnhỉ SOAM.PAS

Tìm vị trí của số nguyên âm lớn nhất trong dãy số nguyên cho trước. Nếu tìm được nhiều hơn 2 vị trí thì chỉ ra vị trí đầu tiên xuất hiện (dãy số nguyên được đánh số bất đầu từ 1).

Dữ liệu: Vào từ file văn bản SOAM.INP gồm:

  • dòng thứ nhất chứa số nguyên n – số lượng phần tử có trong dãy.
  • dòng thứ hai chứa n số nguyên của dãy (các số trên cùng 1 dòng cách nhau bởi dấu cách)

Kết quả: Ghi ra file văn bản SOAM.OUT chứa vị trí của số nguyên âm lớn nhất trong dãy, nếu không tìm dược thì ghi -1.________________________________________ ________________________________________

Bài 5: Dãy số (2 điểm)                                                     Tên chương trình: DAYSO.PAS

Số nguyên f được gọi là ước số (dương) của số nguyên d nếu f lớn hơn 0 và tồn tại số nguyên n sao cho f X n = d. Ví dụ, số 12 là ước số của 60 vì 12 X 5 = 60.

Dãy số nguyên Xi, X2, …, Xn được gọi là dãy DDF nếu:

  • Mỗi Xi đều là số nguyên dương.
  • X1>1.
  • Xi+1 (với i > 1) là tổng các chữ số của tất cả các ước số (dương) của Xi.

Ví dụ

Dãy số 17, 9, 13, 5, 6, … là dãy DDF được hình thành theo cách sau:

  • Ước số (dương) của 17 là 1 và 17; tổng các chữ số là 1 + 1 + 7 = 9.
  • Ước số (dương) của 9 là 1, 3 và 9; tổng các chữ số là 1+3 + 9 = 13.
  • Ước số (dương) của 13 là 1 và 13; tổng các chữ số là 1 + 1 + 3 = 5.
  • Ước số (dương) của 5 là 1 và 5; tổng các chữ số là 1 + 5 = 6.

Biết rằng, với dãy số DDF bắt đầu bằng XI thì đến một lúc nào đó sẽ tồn tại Xn sao cho Xj = Xn, với mọi j>n. số Xn sẽ được gọi là so hạng cuối của dãy.

Yêu cầu: Xác định chiều dài của dãy DDF với số hạng đầu cho trước. Chiều dài của dãy DDF là giá trị của n, với Xn là giá trị cuối của dãy.

Dữ liệu: Vào từ file văn bản DAYSO.INP gồm 1 dòng chứa số hạng đầu XI (xi < 2000).

Kết quả: Ghi ra file văn bản DAYSO.OƯT chứa chiều dãi của dãy DDF.

———— hết——————

  • Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).
  • Thí sình không được sử dụng tài liệu.
  • Giám thị không giải thích gì thêm.

 

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIỀN GIANG           TRƯNG HỌC cơ SỞ

Năm học 2014-2015 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 25/3/2015 (Đề thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Tìm từ (5 điểm)                                        Tên chương trình: ỊVORD.PAS

Cho trước một xâu kí tự. Một từ được định nghĩa là một xâu con liên tiếp chứa các chữ cái (,al,zl hoặc ‘A’..’Z’). Một từ có thế được giới hạn giữa các dấu cách hoặc chấm câu. Dấu chấm câu là một trong các kí tự sau: dấu chấm (.), dấu phẩy (,), dấu chấm phẩy (;), dấu chấm than (!) hoặc dấu chấm hỏi (?).

Yêu cầu: Hãy tìm tất cả các từ có trong xâu mà có kí tự bắt đầu và kí tự kết thúc giống nhau (có phân biệt giữa chữ in hoa và chữ in thường).

Dữ liệu: Vào từ file văn bản WORD.INP chứa xâu kí tự gồm các chữ cái (‘a’…^’ hoặc ‘A’..’Z’), dấu cách, hoặc dấu chấm câu. Độ dài xâu không quá 100 kí tự.

Kết quả: Ghi ra file văn bản WORD.OƯT danh sách các từ mà có kí tự bắt đầu và kí tự kết thúc giống nhau, mỗi từ trên 1 dòng. Nếu không tìm thấy thì ghi -1.

WORD.INPWORD.OUT
dawd
Jun dawd gog, vex symphs.gog
symphs
Bài 2: Số thử tự (5 điểm)                                      Tên chương trình: INDEX.PAS

 

 

Một file văn bản chứa thông tin về học sinh của một lớp học gồm số thứ tự của học sinh và theo sau là tên của học sinh đó. Do lóp vừa nhận thêm một học sinh chuyển đến và giáo viên chủ nhiệm xếp học sinh này vào đầu danh sách nên cần đánh lại số thứ tự của các học sinh trong danh sách lóp.

Yêu cầu: Đánh lại số thứ tự của tất cả học sinh có trong danh sách bằng cách tăng số thứ tự của mỗi học sinh lên 1 đơn vị và giữ nguyên danh sách theo trật tự ban đầuT

Dữ liệu: Vào từ file văn bản INDEX.INP gồm:

  • Dòng đầu tiên chứa số nguyên N (1 < N < 100).
  • Mỗi dòng trong N dòng tiếp theo chứa thông tin của một học sinh theo thứ tự gồm: số thứ tự (số nguyên từ 1 đến 10000), dấu cách, tên của học sinh (không quá 20 kí tự).

Kết quả: Ghi ra file văn bản INDEX.OƯT danh sách học sinh nhu định dạng ban đầu nhung đã tăng số thứ tự của mỗi học sinh lên 1 đơn vị.

INDEX.INPINDEX.OUT
22
14 Nam15 Nam
42 Thanh43 Thanh

 

Bài 3: Dãy Min-Max (5 điểm)                           Tên chương trình: MINMAX.PAS

Cho trước dãy s chứa các số nguyên, vị trí các phần tử được đánh số từ 1 trở đi và từ trái sang phải.

Yêu cầu: Hãy tìm 2 dãy số nguyên dương, trong đó dãy số thứ nhất biểu diễn các vị trí trong s tại đó chứa số hạng nhỏ nhất của dãy s và dãy số thứ hai biếu diễn các vị trí trong s tại đó chứa số hạng lớn nhất của dãy s.

Dữ liệu: Vào từ file văn bản MINMAX.INP gồm :

  • Dòng đầu chứa số nguyên N – biểu diễn số lượng phần tử của dãy (1 < N < 40)
  • Dòng thứ hai chứa N số nguyên A[i] (-231 < A[i] < 231-1 với 1< i < N)

Kết quả: Ghi ra file văn bản MINMAX.OƯT lần lượt chứa 2 dòng:

  • Dòng thứ nhất chứa dãy số biểu diễn các vị trí trong s tại đó chứa số hạng nhỏ nhất của dãy s.
  • Dòng thứ hai chứa dãy số biểu diễn các vị trí trong s tại đó chứa số hạng lớn nhất của dãy s.

Các số trên cùng 1 dòng cách nhau bởi dấu cách.

MINMAX. INPMINMAX.OUT
73
3 6-146532 5

 

Bài 4: Số gốc (3 điểm)                                         Tên chương trình: ROOT.PAS

Cho trước số tư nhiên a có biểu diễn trong hê cơ số 10 là a = a a _H … an SỐ gốc của số tự nhiên a được xác định như sau:

  • Nếu a chỉ có 1 chữ số thì a cũng là số gốc, ngược lại thực hiện như sau:
  • Chọn ra 2 chữ số đầu tiên từ bên trái an và an-i.
  • Tính tổng s= an + an-i:

o Nếu s <10 thì thay 2 số vừa chọn trong biểu diễn của a bằng s. o Nếu s >10 thì thay 2 số vừa chọn trong biểu diễn của a bằng S-9.

  • Lặp lại quá trình trên cho đến khi a chỉ còn 1 chữ số.
  • Số tìm được bởi quy luật trên được gọi là số gốc.

Ví dụ: Tìm số gốc của số a= 87345691. Đầu tiên, cộng 2 số 8 và 7. Ta được số 15. Vì tổng tìm được lớn hơn 10 nên ta thay 2 số đầu của a bằng 15-9, khi đó a sẽ là 6345691. Tiếp tục, cộng 2 số 6 và 3 được 9, sau khi thay thế a sẽ là 945691. Cộng 2 số 9 và 4 được 13, sau khi thay thế a sẽ là 45691. Cộng 2 số 4 và 5 được 9, sau khi thay thế a sẽ là 9691. Cộng 2 số 9 và 6 được 15, sau khi thay thế a sẽ là 691. Cộng 2 số 6 và 9 được 15, sau khi thay thế a sẽ là 61. Cộng 2 số 6 và 1 được 7, sau khi thay thế a sẽ là 7. Sơ đồ thay thế như sau:

8+7=15^15-9=6->6+3=9->9+4=13^13-9=4->4+5=9->9+6=15^15-9=6^6+9=15^ 15-9=6^6+1=7 SỐ gốc tìm được là 7.

Yêu cầu: Viết chương trình xác định số gốc của số nguyên a cho trước.

Dữ liệu: Vào từ file văn bản ROOT.INP chứa số nguyên a (< maxlongint).

Kết quả: Ghi ra file văn bản ROOT.OƯT chứa số gốc của số nguyên a.

ROOT.INPROOT.OUT
873456917

 

Bài 5: Xâu SubsThree (2 điểm)                       Tên chương trình: SƯBSTH.PAS

Xâu con của xâu s được hiểu là một dãy các ký tự liên tiếp của s.

Xâu SubsThree của s là xâu con thỏa mãn:

  • Đó là xâu khác rỗng và chỉ chứa các chữ số ‘0’..’9’
  • Nếu chuyển xâu này sang số thập phân thì sẽ được số chia hết cho 3

Ví dụ, xâu “130a303” chứa 9 xâu Substhree như sau: ba xâu “3”, hai xâu “30”, hai xâu “0”, một xâu “303” và một xâu “03”. Xâu “30a3” không là xâu Substhree vì có chứa chữ cái, còn xâu “13” không xâu Substhree vì số 13 không chia hết cho 3.

Lưu ý rằng hai xâu Substhree được xem là khác nhau nếu chúng khác nhau về độ dài hoặc vị trí bắt đầu của chúng trong xâu s (mặc dù các kí tự của chúng giống nhau)

Yêu cầu: Cho trước xâu s, hãy đếm số lượng xâu Substhree chứa trong s.

Dữ liệu: Vào từ file văn bản SƯBSTH.INP chứa xâu khác rỗng s có tối đa 106 kí tự. Môi kí tự của s chỉ có thể là chữ số ‘0’..’9′ hoặc chữ in thường ‘aVy.

Kêt quả: Ghi ra fìle văn bản SƯBSTH.OƯT chứa nguyên biểu diễn số lượng xâu Substhree chứa trong s.

SUBSTH.INPSUBSTH.OUT
130a3039

 

————— hết————————-

  • Các tập tin chương trình phải đặt theo đủng quy định (cả phần tên và phần mở rộng).
  • Thí sinh không được sử dụng tài liệu.
  • Giảm thị không giải thích gì thêm.

 

SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIÈN GIANG        TRUNG HỌC co SỞ

Năm học 2013-2014 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 26/3/2014 (Đề thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Dãy Subtra (5,0 điểm)                             Tên chương trình: SUBTRA.PAS

Dãy số ti, t2,…tm được gọi là dãy Subtra nếu:

  • Mỗi phần tử ti (i=T..m) của dãy là một số nguyên lớn hơn hoặc bằng 0.
  • Mồi phần tử của dãy, bắt đầu từ phần tử thứ ba là hiệu của hai phần tử liền kề trước nó (tn+2=tn – tn-1 với t >1). Dãy sẽ kết thúc ở tm nếu tm-i<tm.

Ví dụ, nếu bắt đầu bằng hai số 120 và 71 thì dãy Subtra được phát sinh

như sau: 120; 71; 49; 22; 27. Dãy kết thúc ở số 27, độ dài của dãy là 5.

Yêu cầu: Đọc vào hai số ti và Í2, hãy tìm độ dài của dãy Subừa với hai sổ bắt đầu là ti và t2.

Dữ liệu: Vào từ fíle văn bản SƯBTRA.INP chứa hai số nguyên dương ti và t2, 0<Í2<ti< 10000, mỗi số nằm trên 1 dòng.

Kết quả: Ghi ra file văn bản SUBTRA.OƯT độ dài của dãy Subtra với hai số bắt đau là ti và t2-

SUBTRA.INPSUBTRA.OUT
120

71

5

 

Bài 2: Đọc văn bản (3,0 điểm)                                    Tên chương trình: ARAP.PAS

Tiếng Ả Rập, tiếng Ba Tư và tiếng Do Thái là các ngôn ngừ rất đặc biệt không giống như tiếng Anh và nhiều thứ tiếng khác, nó được viết từ phải sang trái. Tuy nhiên, những con số vẫn giừ nguyên (viêt từ trái sang phải). Ví dụ,

câu “manteiv fo tsaoc ffo deraeppasìd sregnessap 221 gniyrrac 777 gnieoB” sẽ được viết theo tiếng Anh là: “Boeing 777 carrying 221 passengers disappeared off coast of Vietnam

Yêu cầu: Chuyển xâu văn bản tiếng Ả Rập sang văn bản Tiếng Anh.

Dữ liệu: Vào từ file văn bản ARAP.INP chứa xâu văn bản theo tiếng Ả rập gồm các từ, mồi từ chứa các kí tự (a-z, A-Z, 0-9) ngăn cách nhau bởi dấu cách.

Kết quả: Ghi ra file văn bản ARAP.OUT chứa xâu văn bản theo tiếng Anh.

ARAP.INPARAP.OUT
manteiv fo tsaoc ffo deraeppasid sregnessap 227 gniyrrac 777 gnieoBBoeing 777 carrying 227 passengers disappeared off coast of Vietnam

 

Bài 3: Độ cao (5,0 điểm)                                Tên chương trình: HEIGHT.PAS

Bạn được giới thiệu một số địa điểm để tham quan. Mỗi địa điểm được giới thiệu bao gồm tên địa điểm và độ cao của nó.

Yêu cầu: Hãy xác định trong các địa điểm đã cho, một địa điểm có độ cao gần nhất với độ cao của bạn ưa thích.

Dữ liệu: Vào từ file văn bản HEIGHT.INP gồm:

  • dòng thứ nhất chứa số nguyên m – độ cao ưa thích của bạn.
  • Các dòng tiếp theo, mỗi dòng chứa các thông tin theo thứ tự sau: tên của một địa điểm, dấu cách, một số nguyên thể hiện độ cao của địa điểm đó.

Kết quả: Ghi ra file văn bản HEIGHT.OUT chứa tên địa điểm mà bạn chọn. Nếu có 2 địa điểm được chọn thỏa mãn yêu cầu đề ra, hãy in ra tên địa điểm có độ cao lớn hon.

HEIGHT.INPHEIGHT.OUT
5

Everest 8850 Kamet 7756 Bahamas 10 Maldives 0 Mariana -11521

Bahamas

 

Bài 4: Tính thời gian chênh lệch (5,0 điểm) Tên chương trình: TIME.PAS

Để xây dựng các công trình thủy lợi đôi khi cần phải khoan nổ mìn đào đá. Việc tính toán thời gian nổ phải thật chính xác để đảm bảo an toàn cho người lao động.

Yêu cầu: Biết thời điểm hiện tại và thời điểm sẽ xảy ra vụ nổ. Hãy xác định khoảng thời gian chênh lệch giữa 2 thời điểm nói ưên.

Dữ liệu: Vào từ file văn bản TIME.INP gồm:

  • dòng đầu tiên chứa thời điểm hiện tại ở dạng hh:mm:ss (giờ, phút, giây). Giờ (hh) là số nguyên từ 0 đến 23; phút (mm), giây (55) là các số nguyên từ 0 đến 59. Các giá trị hh, mm, ss được định dạng 2 chừ số.
  • dòng thứ hai chứa thời điểm sẽ xảy ra vụ nổ theo định dạng như trên. Kết quả: Ghi ra file văn bản OƯT chứa khoảng thời gian chênh lệch giừa 2 thời điểm theo định dạng như trên. Biết rằng thời gian chênh lệch ít nhất 1 giây và tối đa 24 giờ.
TIME.INPTIME.OUT
20:00:00

04:00:00

08:00:00
12:34:56

14:36:22

02:01:26
Bài 5: Số mát mẻ (2,0 điểm)                             Tên chương trình: COOL.PAS

 

 

Theo định nghĩa của một nhóm nghiên cứu Tin học, 0 là một chừ số mát mẻ. Họ gọi độ mát của một số là số lượng 0 trong biểu biễn thập phân của nó. Ví dụ: độ mát của số 100 là 2, độ mát của số 1 là 0.

Yêu cầu: Tìm tổng độ mát của các số từ 0 đến sổ nguyên N cho trước.

Dữ liệu: Vào từ file văn bản COOL.INP chứa số nguyên N (0< N < 10 000

000).

Kết qỊuả: Ghi ra fíle văn bản COOL.OUT chứa tổng độ mát của các số từ 0 đến sổ nguyên N.

COOL.INPCOOL.OUT
556

———– hét——————

•                Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•        Thí sinh không được sử dụng tài liệu.

•       Giám thị không giải thích gì thêm.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cho trước số nguyên N. Hãy tìm số nguyên lớn nhất nhỏ han N sao cho tổng các chữ số của nó nhỏ hơn tổng các chữ số của số nguyên N một đơn vị.

Dữ liệu: Vào từ fíle văn bản NUMBER.INP chứa số nguyên N(1<N<100

000) ‘

Kết quả: Ghi ra file văn bản NUMBER.OƯT chứa số nguyên cần tìm.

NUMBER.INPNUMBER.OUT
15201510

 

Bài 3: Báo cáo tài chính (5 điểm)                            Tên chươiĩg trình: REPORTPAS

Nhân dịp tổng kết cuối năm, bạn được giao nhiệm vụ thống kê tổng số chi phí của từng nhân viên của một công ty sau các chuyến du lịch trong năm. Mỗi nhân viên phải nộp báo cáo chi phí cá nhân cho bạn sau mỗi chuyến đi.

Yêu cầu: Viết một chương trình đọc vào danh sách gồm tên từng người và chi phí của họ, sau đó tạo ra một danh sách được sắp xếp theo tên nhân viên, kèm theo tống số chi phí của mỗi cá nhân.

Dữ liệu: Vào từ file văn bản REPORT.INP có:

  • dòng đầu tiên chứa số nguyên n (1< n <100), số lần nộp bảo cáo của các nhân viên trong công ty.
  • n dòng tiếp theo mỗi dòng chứa 2 giá trị: tên người và chi phí tương ứng (là một số thực). Tên người và chi phí cách nhau bởi dấu cách. Lưu ý: tên người không phân biệt chữ in và chữ thường (ví dụ: Trung và tRung được xem là như nhau).

Kết quả: Ghi ra file văn bản REPORT.OUT chứa danh sách các nhân viên trong công ty kèm theo tổng chi phí của họ trong năm, trong đó tổng chi phí được làm tròn hai số lẻ. Danh sách cần được sắp xếp alphabet theo tên người. Tên người phải được viết hoa chữ cái đầu tiên, các chữ cái còn lại là chữ thường.

REPORT.INPREPORT.OUT
5

trung 450.55 binh 1034.56 trUNg 1000.00 daNn 530.00 danH 470.00

Binh 1034.56 Danh 1000.00 Trung 1450.55

 

Cho trước hai sổ nguyên N và D. Hãy tỉm N số nguyên dương X]…XN sao cho hiệu số giữa tích của chúng và tổng của chúng bằng với D.

Dữ liệu: Vào từ file văn bản SUMPRO.INP chứa hai số nguyên dương N (2<N< 1000) và D (0 <D < 1000).

Kết quả: Ghi ra file văn bản SUMPRO.OUT chứa N số nguyên dương thỏa mãn yêu cầu nói trên theo thứ tự không giảm. Lưu ý rằng các số tìm được có thể bằng nhau. Giá trị các số được in không vượt quá 1 o6.

Các số trên cùng 1 dòng cách nhau bởi dấu cách

SUMPRO.INPSUMPRO.OUT
3 512 8

 

Bài 5: Cân bằng bit (2,0 điểm)                                     Tên chương                                                                             trình:                                                                             BỈT.PAS

Đọc vào 2 xâu khác rỗng s và T có độ dài bằng nhau,                                                                                                        s                                                                                                  chứa các kí tự                                                                                                  ‘0’,

‘1’và ‘?\ còn T chỉ chứa các kí tự ‘0’ và ‘1\

Yêu cầu: Hãy chuyển đổi xâu s thành xâu T với số bước nhỏ nhất. Biết rằng môi bước có thế thực hiện một trong các thao tác sau:

  1. Thay đổi kí tự ‘0’ trong s thành ‘r.
  2. Thay đổi kí tự ‘?’ trong s thành ‘0’ hoặc ‘
  3. Hoán đối 2 kí tự bât kỳ trong xâu s.

Ví dụ: Với xâu s = ‘0?1?’ và T = ‘1001’. Ta có thể chuyển s thành T trong vòng 3 bước sau:

  • Bước 1: Hoán đổi S[l] và S[3]. s trở thành ‘1?0?’
  • Bước 2: Chuyển S[2] to ‘0’. s trở thành ‘100?’
  • Bước 3: Chuyển S[4] to ‘ r. s trở thành 41 oor

Dữ liệu: Vào từ file văn bản BIT.INP gồm 2 dòng chứa 2 xâu s và T, mỗi dòng có độ dài không quá 100.

Kết quả: Ghi ra fỉle văn bản BIT.OUT chứa số bước nhỏ nhất để chuyển đổi s thành T. Nếu không chuyển đổi được thì ghi số -1.

BIT.INPBIT.OUT
0?1?

1001

3

————- HẾT——————

•     Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•     Thỉ sình không được sử dụng tài liệu.

•     Giám thị không giải thích gì thêm.

 

 

Họ và tên thí sinh:…………………………………… số báo danh:……………………………………………………………

 

SỎ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIẺN GIANG         TRƯNG HỌC co SỎ

Năm học 2016-2017 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi : 22/3/2017 (Đe thi có 04 trang, gồm 05 bài)

Hãy lập trình giải các bài toán sau:

Bài 1: Giai thừa ngược (5 điểm)                                  Tên chưong trình: PINV.PAS

Trong toán học, n! (đọc là n giai thừa) được định nghĩa như sau:

n! =1x2x3x … X (n-1) X n (n là số nguyên không âm) Ví dụ:      3! = 1 X 2 X 3 = 6

Đặc biệt: với n = 0, người ta quy ước 0! = 1. Ký hiệun! được dùng lần đầu bởi Christian Kramp vào năm 1808.

Yêu càu: Biết trước giá trị của n!, hãy tìm sô nguyên n.

Dữ liệu: Vào từ file văn bản FINV.INP chứa giá trị của n!. Biết rằng số chữ số của n! không vượt quá 1 o6.

Kết quả: Ghi ra file văn bản FlNV.OƯT chua số tự nhiên n tìm được. Nêu không tìm được số nauvên n thì ghi -1.

FINV.INPFINV.OUT
362880010

 

Bài 2Í Chu kỳ dự đoán (5 điểm)                                  Tên chương trình: PẼRI.PAS

Ngày nay, có nhiều mô hình dự báo nhăm để biết trước những điều có thể xảy ra trong tương lai. Một mô hình thường dự báo, dự đoán giá trị của biến số (hoặc một dãy biến số) tại một số diêm trong tương lai căn cứ vào những dữ liệu trong quá khứ.

Dãy số nguyên ai. a2, …,an được gọi là dãy dự đoản chu kỳ k nếu tồn tại số nguycn dương k (IV k<n) sao cho mọi phần tử a; của dãy đều thỏa mãn a, a;+k với 1< i< n (nếu phần ai+k nằm ngoài dãy thì xem như nó nhận giá trị tùy chọn), số nguyên dương nhỏ nhất k thỏa mãn tính chất trên được gọi chu kỳ dự đoán của dãv số.

Một lập trình viên được đặt hàng viết chương trình phân tích chuỗi giá trị cho trước và cho biêt chuỗi này có khả năng tạo chu kỳ dự đoán k=3 hay không?

Yêu cầu: Đọc vào 1 dãy số nguvên và cho biết có là dãv dự đoán chu kỳ k=3 không?

Dữ liệu: Vào từ file văn bản PERI.INP

  • Dòng đầu chứa số nguyên n (3< n < 500).

 

  • Dòng thứ hai chứa n số nguyên aj (1< ai < 100). Các số này được cách nhau bởi dấu cách.

Ket quả: Ghi ra file văn bản PERI.OUT chứa chữ “YES” nếu dãy đã cho là dãy dự đoán chu kỳ k=3, ngược lại ghi chữ “NO”.

PERI.INPPERI.OUT
12

12 3′ 123123123

YES
11

123123 t 2312

YES
7

7 3 6 7 2 3 9

NO

 

Bài 3: Tên mã (4 điểm)                                                     Tên chương trình: CODE.PAS

Ngoài tên gọi chính, một hệ điều hành còn có tên phiên bản và tên mã (codename), tất cả đều được đặt theo một quy luật hay lý do nào đó. Ví dụ, hệ điều hành Android 4.4 có tên mã là KITKAT, Windows Phone có tên mã PHOTON, Fedora 14 có tên là LAƯGHLIN.

Tại Hội nghị triến lãm sản phẩm phần mềm, Ban Tổ chức quy định rằng tên mã đạt siải cao nhất là tên mã có số lượng chữ cái khác nhau nhiều nhất. Ví dụ: Tên mã K1TKAT có 4 chữ cái khác nhau: A, I, K và T; Tên mã JELLY BEAN có 7 chữ cái khác nhau A, B, E, J, L, N và Y; nên tên mã JELLY BEAN đạt giải cao nhất.

Ngoài ra cũng lưu ý rằng, nếu hai tên mã có cùng số chữ cái khác nhau thì tên mã nhỏ hơn sẽ đạt giải cao nhất. Biêt rằng phép so sánh hai tên mã được thực hiện theo quy tăc như sau:

+ Tên mã A gọi là nhỏ hơn tên mã B (B lớn hơn A) nếu như kí tự dầu tiên khác nhau giữa chúng kể từ trái sang phải trong tên mã A có mã ASCII nhỏ hơn.

+ Nếu A và B là các tên mã có độ dài khác nhau và A là đoạn đầu của B thì A là nhỏ hơn B.

Yêu cầu: Được biết danh sách liệt kê tên mã của các hệ điều hành, hãy xác định tên mã của hệ điều hành đạt giải cao nhất?

Dữ liệu: Vào từ fìle văn bản CODE.INP gồm:

  • Dòng đầu tiên chứa số nguyên n cho biết số lượng tên mã của các hệ điều hành (1 < n< 100).
  • Mỗi dòng trong n dòng tiếp theo chứa một tên mã của hệ điều hành (mỗi dòng chứa không quá 20 kí tự). Mỗi tên mã đều bắt đầu và kết thúc bằng chữ cái in hoa. Giả sử tên mã của một hệ điều hành gồm các chữ cái in hoa ‘A’..’Z’ và có thể chửa dấu cách ở giữa.

Ket quả: Ghi ra ílle văn bản CODE.OUT chứa tên mã đạt giải cao nhất.

CODE.INPCODE.OUT
3

OREO

KITKAT

 

 

SID

KĨTKAT _____________________

Bài 4: Xổ số điện toán (4 điểm)                            Tên chương trình: LOT.PAS

Người chơi tham gia được tự chọn n vé số để dự thưởng, mỗi vé số là một chuồi số gồm 6 bộ số phân biệt, mỗi bộ số là 1 số nguyên có 2 chữ số (có giá trị từ 01, 02,…,45).

trên.

Sau khi so từng vé số với chuỗi số kết quả quay thưởng của Ban Tổ chức công bô, người chơi sẽ biêt được có trúng thưởng hay không. Tổng sô tiền thưởng của người chơi là tống số tiền thưởng nhận được của từng vé số trúng thưởng.

Cơ cấu giải thưởng được xác định như sau:

  • Giải đặc biệt (trúng cả 6 bộ số) : 12 tỷ (đồng)
  • Giải nhất (trúng cả 5 bộ số) : 10 000 000 (dồng)
  • Giải nhì (trúng cả 4 bộ số) : 300 000 (đòng)
  • Giải ba (trúng cả 3 bộ số) : 30 000 (đồng)

Lưu ý:

  • Các bộ số của 1 vé số trùng với kết quả các bộ số của quay thưởng không cần theo thư tự.
  • Trong trường hợp một vé số trúng nhiều giải thưởng thì người trúng thưởng chỉ được lĩnh một giải thưởng cao nhất.
  • Nếu nhiều vé số trúng giải, trong đó có giải đặc biệt thì chỉ nhận giải đặc biệt Ợackpot).

22

thì người này sẽ trúng thưởng 60000 đồng Dữ liệu: Vào từ file văn bản LOT.INP gồm:

  • Dòng đầu tiên chứa chuỗi sổ kết quả quay thưởng.
  • Dòng thứ hai chứa số nguyên n (1 <n<100), số lượng tờ vé số của người chơi.
  • n dòng tiếp theo, mỗi dòng chứa thông tin của 1 vé số.

Các bộ số trong chuỗi số kết quả quay thưởng và trong 1 vé số cách nhau bởi dấu cách.

Ket quả: Ghi ra file văn bản LOT.OUT chứa tổng số tiền thưởng nhận được. Nếu không trúng thưởng thì ghi số 0. Neu trúng giải đặc biệt thì ghi ‘JACKPOT’.

LOT.INPLOT.OUT
03 02 07 41 36 22 560000

 

 

Bài 5: Số bội của 3 (2 điểm)

Hệ thông lưới điện có thê bị gây hại bởi nhiêu tác nhân, trong đo một nguy cơ tiềm ẩn làm cản trở hoạt động và làm hao mòn thiết bị nhưng ít người nhận biết được chính là sóng hài – mối nguy cơ tiềm ẩn được phát hiện ngay đầu thập niên 1890.

Sóng hài (harmonic) là dòng điện không mong muốn làm quá tải đường dây và biến áp, làm tăng nhiệt độ hệ thống (hoặc thậm chí gây hỏa hoạn) và gây nhiễu lên lưới điện. Sóng hài là các điện áp hay dòng điện hình sin có tần số là bội số của tần số công nghiệp (tần số cơ bản), do hiện diện của các tải phi tuyến trong lưới điện. Ví dụ dòng điện hài có tần số 150HZ trên lưới điện 50HZ là sóng hài bậc 3. Thường chỉ có sóng hài bậc lẻ 3, 5, 7, 9 là xuất hiện trong lưới điện 3 pha.

Với tần số của 1 dòng điện đã cho, cần tìm sóng hài bậc 3 có ảnh hưởng đối với tân số của dòng điện đã cho.

Yêu cầu: Cho trước tự nhiên n. Hãy thay đổi 1 chữ số của n để được số chia hết cho 3 và là số lớn nhất trong các so tìm được (kể cả trường hợp ban đâu n chia hết cho 3).

Dữ liệu: Vào từ file văn bản MUL3.INP chứa số tự nhiên n có tối đa 100 chữ số.

Kết quả: Ghi ra file văn bản MUL3.0UT chứa số tự nhiên tìm được theo yêu cầu trên.

MUL3.INPMUL3.OUT
123723
96
HÉT

 

 

  • Các tập tin chương trình phải đặt theo đủng quy định (cả phần tên và phần mở rộng).
  • Thỉ sinh không được sử dụng tài liệu.
  • Giám thị không giải thích gì thêm.

Họ và tên thí sinh:……………………………………………… số báo danh:……………………………………………………………….

 

KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2017-2018 Môn: TIN HỌC

Thời gian: 150 phút (khổng kể thời gian giao đề)

Ngày thi: 30/3/2018

(Đê thi có 03 trang, gồm 05 bài)

Hãy lập trình giải các hài toán sau:

Bài 1: Chỉ số BMR (5 điểm)                                          Tên chương trình: BMR.PAS

‘BM&Ợìasal Metabolic Rate) là chỉ số năng lượng cơ bản của cơ thể cho biết mức năng lượng tối thiểu mà cơ thế cần để duy trì các hoạt động bình thường.

  • Công thức tính chỉ số BMR:

Nừ giới: BMR = 655 + (9.6 X kg) -f (1.8 X cm) – (4.7 X tu ổi) Nam giới: BMR = 66 + (13.7 X kg) -h (5 X cm) –                                                                                                    (6.8 X tuồi)

  • Cách tính tống lượng calo cần hấp thụ theo từng múc độ hoạt động the chất
  • Nếu bạn quá ít hoạt động (ít hoặc không tập luyện): Caỉo = BMR X 1.2
  • Neu bạn ít hoạt động (ít tậu thể dục/thê thao 1-3 ngày/tuần): Calo = BMR X 375
  • Nếu bạn hoạt động vừa (tập thê dục/thế thao vừa vừa 3-5 ngày/tuần): Calo = 55
  • Nếu bạn hoạt động nhiều (tập thẻ dục/thề thao nhiều 6-7 ngày/tuần): Calo = BMR X 1.725
  • Nêu bạn hoạt động cường độ cao (tập thê dục/thê thao cường độ cao & cỏng việc thể chất hoặc tăng gấp đổi lượng luyện tập): Calo = BMR X 1.9

Yẽu cầu: Đọc vào thông tin của 1 người bao gồm giới tính, tuổi, chiều cao, cân nặng và mức độ hoạt động của người đó. hãy tính lượng calo cần thiết.

Dữ liệu: Vào từ file văn bản BMRHNP gồm 5 dòng:

  • Dòng 1: Chứa chữ “NAM’’ hoặc “NU”, cho biết giới tính của người đó.
  • Dỏng 2:Chứa số nguyên cho biết tuổi.
  • Dòng 3: Chứa số nguyên cho biết chiều cao (tính bằng cm).
  • Dòng 4: Chứa số nguyên cho biết cân nặng (tính bàng kg).
  • Dòng 5: Chứa 1 trong các ki tự “S”, “L”, “M”, “A”, “E”, cho biết mức độ hoạt động tương ứng như sau:

S: quá ít hoạt động (ít hoặc không tập luyện); L: ít hoạt động; M: hoạt động vừa; A: hoạt động nhiều; E: hoạt động cường độ cao.

Kết quả: Ghi ra file văn bản BMR.OUT chứa lượng calo cần thiết cho người đó. Kết quả là một số nguyên không lấy phán thập phân.

BMR.INPBMR. OUT
NAM1713
52
1 65
65
s

 

Bài 2: Số Emỉrp (5 điểm)                                                  Tên chương trình: EMỈRP.PAS

Số Emirp là một số nguyên tố mà khi đảo ngược vị trí các chữ số của nó, ta cũng được một số nguyên tố. Định nghĩa này không bao gồm các số nguyên tố xuôi ngược (đọc ngược hay xuôi cũng là số nguyên tố chính nó), như 151 hoặc 787) và không bao gồm các số nguyên tố có một 1 chữ số. Biêt rằng, số nguyên tố là số tự nhiên chỉ có hai ước sô dương phân biệt là 1 và chính nó.

Yêu cầu: Đọc vào số nguyên n, hãy cho biết n có là số Emirp không?

Dữ liệu: Vào từ file văn bản EM3RP.INP chứa số nguyên n (1< n < 10000).

Kết quả: Ghi ra file văn bản EMIRP.OUT chứa chứa chữ “YES” nếu n là số Emirp, ngược lại ghi chữ “NO”.

EMIRP . INPEMIRP.OUT
149YES

 

Bài 3: Số thân thiện (4 điểm)                                        Tên chương trình: FRIEND.PAS

Người ta gọi bộ 3 số nguyên dương là thăn thiện nếu chúng khác nhau đôi một và tích của hai trong số chúng chia hết cho số thứ ba.

Yêu cầu: Đọc vào hai số nguyên dương phân biệt, hãy đếm xcm có bao nhiêu số nguyên tạo với hai số dã cho thành bộ 3 số thăn thiện.

Dữ liệu: Vào từ file văn bản FRIEND.INP chứa 2 số nguyên dương phân biệt cách nhau bởi dấu cách, mỗi số có giá trị không vượt quá 40000.

Kết quả: Ghi ra file văn bản ERIEND.OUT chứa số lượng số nguyên tạo với hai số đã cho thành bộ 3 sô thân thiện.

FRIEND.INPFRIEND.OUT
5 15õ
Giải thích: Có đúng hơi số cùng với số 5 và số ỉ5 tạo thành bộ 3 thân thiện là số 3 (vì 3×5 chia hết cho 15, 3×15 chia hết cho 5 và 5 X 15 là chia hết cho 3) và số 75 (vì 5 X 15 chia hết cho 75, 5 x 75 chia hết cho 15 và 15 X 75 chia hết cho 5).

 

 

Bài 4: Giải mã Email (3 điểm)                               Tên chương trình: EMAIL.PAS

Một người dùng giấu một mật khẩu trong một email đâ gửi. Email đã gửi bao gồm một số dòng văn bản. Mỗi dòng chứa một số từ. Từ là dãy liên tiếp các chữ cái 6a\.’z\ Mật khẩu được thành lập bằng cách ghép theo thứ tự các từ lấy trong nội dung email đã gửi.

Mật khẩu được tìm thấy dựa theo quy luật sau:

 

  • Dòng thứ nhât củẩ ciriail không chứa mặt khẩu.
  • Dòng thử hai của email chứa từ đầu tiên của mật khẩu.
  • Dòng thứ ha của email chứa từ thứ hai của mật khẩu.
  • Dòng thử tư của email chứa từ thử ba của mật khẩu.

Và tiếp tục như thể…

Luu ý: Nếu trên một dòng nào của email khòng tìm được từ nào của mật khẩu theo quy luật trên thì lừ tìm được là rỗng và không đưa từ rỗng vào mật khẩu.

Dữ liệu: Vào từ file văn bản EMAIL.INP gồm:

  • Dòng đầu tiên chửa số dòng của email (email chứa không quá 50 dòng).
  • Các dòng tiếp theo chứa nội dung của Einail.

Kết quả: Ghi ra file văn bản EMAIL.OUT chứa mật khẩu tìm được theo quy luật trên. Mỗi từ cua mật khâu nằm trcn 1 dòng. Dữ liẹu vào đain bảo mật khẩu tìm được luôn khác rỗng.

EMAIL.INPEMAIL,OƯT
5toi
viet nam la quoc gia thuoc khu vuc dong nam adang
toi thay hoa vang tren co xanho
tet dang vao nhanga
tim nha o
bay chim thien nga
Bái 5: Dãy con (3 điểrii)                                                 Tên chương trình: SƯBSEQ.PAS

 

 

Cho dãy A có n phần tử. mỗi phần tử là một số nguyên (có thể âm, bàng 0 hoặc dương). Hãy tim dãy con khác rỗng các phần tử liên tiép của A sao cho:

  • Phần tử đầu dãv con và cuối dãy con bằng nhau.
  • Tổng các phần tử của dãy con là lớn nhất.

Hay nói cách khúc: Tìm 2 số nguvên / và /• (1 <l<r<n) sao cho a/ = ar và tổng a/ + ÍU+I + • • • + ar là lớn nhất.

Dữ liệu: Vào từ file văn bản SUBSEQ.INP gồm:

  • Dòng thử nhất chứa số nguyên n (1 < n < 106) – số lượng phần tử cúa A.
  • Dòng thứ hai chứa n số nguyên aụ ãi,…, a„ (-109 < ai <109. 1 < i <n).

Kết quả: Ghi ra file văn bản SUBSEQ.OUT gồm:

  • Dòng thứ nhất chứa tổng lớn nhất tìm được.
  • Dòng thứ hai chứa hai số nguyên / và

Các số trên cùng một dòng cách nhau bởi dấu cách. Neu tìm được hơn 1 lời giải thì xuất ra bát kỳ một trong số chúng.

SƯBSEQ.INPSƯBSEQ.OƯT
55
12 12 32 4
…………… HÉT…………………..

•                Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•        Thí sinh không được sử dụng tài liệu.

•       Giám thị không giải thích gì thêm.

 

 

KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2018-2019 Môn: TIN HỌC

Thời gian: 1.50 phút (không kể thời gian giao đề)

Ngày thi: 20/3/2019

(Đề thi có 04 trang, gồm 05 bài)

TONG QUAN CÁC BÀI THI

Tên bàiFile chương trinhFile dữ liệu vàoFi!e kết quả
Bài 1Lễ hội Cà phôCAPE.*CAFE.INPCAFE.OUT
Bài 2Số ưa thíchHKE.*LIKE.INPLIKE.OUT
Bài 3Phuc hồi dãy sốSEỌ.*SEQ.INPSEQ.OŨT
Bài 4Số nguyên tố lớn nhấtPRIME.*PRIME.INPPRIME.OUT
Bài 5Dãy số điều hòaHARMONIC.*HARMONIC.INPHARMONIC.OUT

(Dấu * đưọc thay bỏi PAS hoặc CPP của ngôn ngũ’ lập trình đuọc sử dụng tuoìig ứng vỏ’i Pascal hoặc C++). Hãy lập trình giải các bài toán sau:

 

 

Bài 1: Lễ hội Cà phê (5 điểm)

Ban To chức Lễ hội Cà phê năm 2019 vạch ra một kế hoạch cho các sự kiện sẽ diễn ra trong Le hội. Mỗi sụ’ kiện được Ban Tổ chức dự kiến thời gian diễn ra bao gồm thời gian bắt đầu và thời gian kết thúc.

Yêu cầu: Căn cứ thông tin của Ban Tố chức, hãy xác định thời gian bắt đầu (thời gian bắt đầu của SỊT kiện sớm nhất) và kểt thúc (thòi gian kết thúc sự kiện cuối cùng) của Lề hội, tông thời lượng của các sự kiện (không bao gồm thời gian nghỉ) và tông thòi gian nghỉ.

Dữ liệu: Vào từ file văn bán CAFE.INP có:

  • Dòng đầu tiên chứa một số nguyên n – số lượng sự kiện (1 < n <20).
  • Dòng thứ i của n dòng tiếp theo chứa thông tin về các sự kiện bao gồm: Si là tên của sự kiện (bao gồm các chữ cái không quá 100 ký tự), thời gian bắt đầu của sự kiện là ai và thòi gian kết thúc bi. Thời gian được cho là hợp lệ và theo định dạng hh:mm (không có dấu cách ở giữa) và có giá trị từ 00:00 đên 23:59. Giữa Si và aị có thê có một hoặc nhiêu dâu cách, giữa ai và bi là dấu trừ (-). Mỗi sự kiện chi được tố chức tại một thòi điểm. Một sự kiện không the kéo dài dưới 1 phút.

Kết qua: Ghi ra file văn bản CAFE.OƯT chứa bổn dòng:

Dòng ĩ: Thời gian bắt đầu (thòi gian bắt đầu của sự kiện sớm nhất).

Dòng 2: Thời gian kết thúc (thời gian kết thúc sự kiện cuối cùng).

Dùng 3: Tổng thời lượng của các sự kiện (không bao gồm thời gian nghỉ). Dòng 4: Tống thời gian nghỉ.

Tất cả dữ liệu đầu ra theo định dạng hh:mm.

CAFE.INPCAFE.OUT
310 : 00
Opening 15:20-17:2017 : 20
Speech 10:00-11:0005 : 00
Festival 12:00-14:0002:20

 

Bài 2: Số ua thích (5 điểm)

Bình rất thích các số trong đó không có hai chữ số liên tiếp giống nhau.

Yêu cầu: Với một số nguyên n được cho, hãy giúp Bình tìm sổ nguyên nhỏ nhất, lớn han hon n, mà Bỉnh thích.

l)ữ liệu: Vào từ file văn bản LIKE.INP chứa số nguyên n (1 < n < 1018).

Kết quả: Ghi ra ílle văn bản L1KE.OUT chứa sô nguyên nhỏ nhất lớn hơn n, trong đó không có hai chừ sô liên tiếp giông nhau.

LIKE.INPLIKE.OUT
98101

 

Bài 3: Phục hồi dãy số (4 điểm)

Trong 1 tiết dạv toán, các học sinh đang được giới thiệu về các số nguyên dương. Đê chuân bị cho tiết học, giáo viên viết sẵn các số từ 1 đến n theo thứ tự tăng dần (từ trái sang phải) trên bảng.

Tuy nhiên, có một học sinh nghịch ngợm đã chạy vào lóp học và đã xóa đi một số đã đưọ’c giáo viên viết trên bảng. Đứng trước Hiệu trưởng, học sinh này xưng tên là Nam, học sinh này rất hối hận và nói rằng mình chỉ xóa đúng một số trong dãy số.

Yêu cầu: Hãy giúp giáo viên tìm hiểu xem điều này có đúng không, và nếu có thế, hãy cho biết số nào đã bị xóa.

Dfr liệu: Vào từ file vãn bản SEQ.INP gồm:

  • Dòng đầu tiên chứa số nguvên n – sô lượng số nguyên đã được giáo viên ghi trên bảng (2 < n < 1000).
  • Dòng thứ hai chứa số nguyên m – số lượng số nguyên còn lại trên bảng sau khi học sinh đã xóa (1 < m <1000).
  • Dòng thử ba chứa m số nguyên ai, a2, . . . , am — dãy số nguyên còn lại sau khi Nam đã xóa, theo đúng thứ tự mà chúng đã được ghi trên bảng (1 < ãị < 1000).

Kết quả: Ghi ra fde văn ban SEQ.OƯT theo định dạng sau:

  • Nếu lời giải thích của Nam là hợp lý:
  • Ghi chữ “Yes” dòng đầu tiên.
  • Dòng tiếp theo chứa số nguyên đã bị Nam xóa.
  • Nếu lời giải thích của Nam là không hợp lý: Ghi chữ “No”.
SEQ.INPSEQ.OUT
4Yes
32
13 4

 

Bài 4: Số nguyên tố ló’n nhất (4 điểm)

Một giáo viên Toán muốn kiếm tra kiến thức số học của học sinh lóp mình đang dạy bằng cách như sau: Đầu tiên Ồng giới thiệu với học sinh hai số tự nhiên a vàb. Sau đó yêu cầu học sinh hình thành các sô mới theo quy tăc:

  • Lấy chữ số đầu tiên của số a: Đặt thay cho chữ số đầu tiên của số b, tạo thành một số mới; Đặt thay cho chữ số cuối cùng của số b, tạo thành một số mới.
  • Lấy chữ số thứ hai của số a: Đặt thay cho chừ số đầu tiên của số b, tạo thành một số mới; Đặt thay cho chữ số cuối cùng của số b, tạo thành một số mới.

Tiếp tục tạo các số khác theo quy tắc trên cho đến hết chữ số cuối cùng của số a. (nếu số a có 3 chừ sổ thì sẽ có 6 sổ được tạo thành).

Yêu cầu: Biết hai số a và b, hãy tìm sổ nguyên tố lớn nhất trong các số được hình thành theo quy tắc trẻn (kể cả hai số ban đầu a và b). Neu không tìm được số nguyên tố lớn nhất như yêu cầu ở trên thì hiển thị số lớn nhất có thể (kể cả hai số ban đau a và b).

Dữ liệu: Vào từ fiỉe văn bủn PRIME.INP chứa hai số nguyên a vàb (10 < a, b

< ỉ000000).

Kết quả: Ghi ra tìle văn bản PRIME.OIT chứa số nguyên tìm được theo yêu cầu ở trên.

Ví dụ:

_____ *__________________________________________________ ______________________________________ _

Bài 5: Dãy số điểu hòa (2 điểm)

Trung bình điểu hòa là một trong ba trung bình Pythagoras, hai trung bình kia lả trung bình nhân và trung bình cộng (trong Excel có hàm HARMEAN trả về trung bình điều hòa của một tập hợp dữ liệu)

Ta nói rằng ba số a, b, c theo thứ tự tạo thành dãy số điểu hòa nêu b là trung bình điều hòa của a và c, nghĩa là:

2

a c

Yêu cầu: Biết trước số tụ nhiên b, hãy xác định tất cả các cặp số tự nhiên (a, c) sao cho a, b, c tạo thành dãy số điều hòa.

Dữ liệu: Vào từ file văn bản HARMONIC.INP in chứa một số tự nhiên b.

Kết quả: Ghi ra lìlc văn bản HARMONIC.OUT chứa ở dòng đẩu tiên một số tự nhiên n cho biết cho số cặp số tự nhiên (a, c) trong đó b là giá trị trung bình diều hòa. n dòng tiếp theo sẽ hiến thị các cặp số (a, c) tìm được (chúng cách nhau bởi một dấu cách).

Hạn chế và hru ỷ:

  • 1 < b < 10°;
  • Các cặp số trong file kêt quả có thê được hiến thị (heo bất kỳ thứ tự nào;
  • Neu b là trung bình điều hòa giữa hai số khác nhau a và c thì các cặp (a, c) và (c, a) được coi là lời giải riêng biệt.
HARMONIC.INPHARMONIC.OƯTGiải thich
33số 3 là trung bình điều
3 3hòa của số 3 và 3. Ta có
dãy số điều hòa (3, 3,
2 63)
6 2Số 3 là trung bình điều
hòa của số 2 và 6. Ta có
các các dãy số điều hòa
(2,3,6) và (6,3,2)
————- Hét ——————–

•                Các tập tin chuvng trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng).

•       Thí sinh không được sử dụng tài liệu.

•       Giảm thị không giải thích gì thêm.

 

 

 

KỲ THI CHỌN HỌC SINH GIỎI CẢP TINH TRƯNG HỌC CO SỞ, NÃM HỌC 2020-2021

Môn: TIN HỌC

Thời gian: 150 phút (không kê thời gian giao để)

Ngày thi: 31/3/2021

(Đê thi có 04 trang, gồm 05 bài)

TỎNG QUAN CÁC BÀI THI

Tên bàiFi!e chuông trìnhFile dữ liệu

vào

File kết quả
Bài 1Số kết đôiNUM.*NUM.INPNUM.OUT
Bài 2World cupCUP.*CUP.INPCUP.OƯT
Bài 3Phần tư điên hìnhPART.*PART.1NPPART.OUT
Bài 4Đặt mật khẩuPW.*PW.INPPW.OUT
Bài 5Sự lây lanCOVID.*COV1D.INPCOVID.OUT

 

Dấu * được thay thế bời PAS, CPP hoặc PY cứa ngôn ngữ lập trình được sử dụng tương ứng là Pascal, C++ hoặc Python.

Bài 1: Số kết đôi (5.0 điểm)

Số nguyên dươna X được gọi là số kết đôi nếu như có thê tim thấy hai số nguyên a, b thoa mãn các điều kiện:

  • ì < a < b < X

, _        , a 1

  • X è = X và – > —

b 2

Yêu cầu: Hãy xác định một số nguyên cho trước có là số kết đôi hay không?

Dữ liệu: Vào từ file văn bản NUM.INP chứa số nguyên X (1 < X < 215).

Kết quả: Ghi ra file văn bản NUM.OƯT chứa số 1 nếu X là số kết đôi, ngược lại ghi số 0.

Bài 2: VVorld cup (5.0 điêm)

Liên đoàn Bóng đá Ọuốc tế (FIFA) đã ấn định ngày khai mạc World Cup 2022. Đội chủ nhà Qatar sẽ đá trận đầu tiên trong ngày khai mạc là ngày 21/11/2022.

Phương đang sống ờ Việt Nam, rất dam mê bóng đá và mong chờ được xem lễ khai mạc.

 

Yêu cầu: Hãy giúp Phương tính xem kể từ một mốc thời gian ngày, còn bao nhiêu ngày nữa là đến lễ khai mạc. Ví dụ, mốc thời gian là ngày hôm nay, nếu lễ khai mạc là ngày mai, thì sẽ còn 1 ngày nữa. Cho biết:

a) Số ngày trong 1 tháng:

Tháng123456789101112
Số ngày3128 (29 nếu là năm nhuận)31303130313130313031

b) Năm nhuận:

 

 

Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 mà không chia hết cho 100. Ví dụ, năm 1800 không phải là năm nhuận; năm 2016, 2000 là năm nhuận.

Dữ liệu: Vào từ íile văn bản CUP.INP chứa 1 xâu cho biết mốc thời gian ngày cần tính theo định dạng “dd.mm.vyyy”. Trong đó dd là ngày có giá trị từ 01 đến 31, nim là tháng có giá trị từ 01 đến 12, yyyy là năm có 4 chữ số. Dừ liệu ngày cho là hợp lệ. Kết quả: Ghi ra tìle văn bản CƯP.OUT chứa số ngày sẽ đến lễ khai mạc FIFA World Cup 2022.

Bài 3: Phần tử điển hình (4.0 điềm)

Cho trước một mảng có n phần tử A = [ai, a2,…, an]. Phần tử a, được gọi là điển hình nếu tồn tại một cặp chí số L và R (1 < L < R < n) sao cho aj = aL + aL+i +…+ aR. Nói cách khác, một phần tử được gọi là điển hình nếu nó có thể được biếu diễn dưới dạng tông của hai hoặc nhiều hơn các phần tử liên tiếp của một mảng.

Yêu cầu: Đem số phần tử điển hình cua mảng đã cho A.

Ví dụ, nếu n = 9 và A = [3, 1,4, 1, 5, 9, 2, 6, 5] thì số phần tứ điển hình của A là 5, cụ thê:

  • a3 = 4 là phần tử điển hình, vì a3 = 4 = ãị + a2 = 3 + 1;
  • a5 = 5 là phần tử điển hình, vì a5 = 5 = a2 + a3 = 1 + 4;
  • a6 = 9 là phần tử điển hình, vì a6 = 9 = ai + a2 + a3 + a4 = 3 +   1 + 4 + 1;
  • a8 = 6 là phân tử điển hình, vì a8 = 6 = a2 + a3 + a4 = 1 + 4 +     1;
  • ãg – 5là phần tử điên hình,vì ay = 5 = a2 + a3 = 1 +

Lun ý rằng các phần tử của mảng A có thế bằng nhau nên nếu có một số phần tử điển hình mà bằng nhau thì tất cả chúng sẽ được đếm.

Dữ liệu: Vào từ íìle văn bản PART.INP gồm:

  • Dòng đầu tiên chứa số nguyên n là số phần tử của mảng A (1 < n < 8000).
  • Dòng thứ hai chứa n số nguyên cách nhau bởi dấu cách ax, a2,…, an

(1 < al < n).

Kết quả: Ghi ra file văn ban PART.OUT chứa số phần tử điển hình cua mang đã cho.

PART.INPPART.OUT
9

314159265

5

 

Bài 4: Đặt mật khấu (4.0 điểm)

Quên mật khẩu Facebook, Gmail, Zalo… là việc thuờng xảy ra khi chúng ta phải đàng nhập rất nhiều tài khoản hằng ngày. Bên cạnh việc tạo mật khẩu mạnh là việc làm thế nào mà bạn có thế nhớ nhùng mật khâu đã tạo. Một người dùng internet nghĩ ra cách tạo một mật khấu mới như sau: Mật khẩu mới là mật khâu chỉ khác các mật khẩu mà anh ta đã có (tạo ra hoặc được cung cấp) nhiều nhất 1 vị trí.

Yêu cầu: Với n xâu s 1 ,s2,- – •, Sn cho trước, các xâu đêu có cùng độ dài m. Hãy tạo xâu mật khấu mới p sao cho mỗi xâu tronc sô n xâu đã cho khác xâu p không hơn một vị trí. Hay nói cách khác, với mồi xâu Si không có hơn 1 vị trí j sao cho Sj[j] V

PDL

Lưu ý: Xâu p mong muốn có thê bằng một trong các xâu Si đã cho, hoặc nó có thể khác với tất cả các xâu Si đã cho.

Dữ liệu: Vào từ file văn bản PW.INP gồm:

  • Dòng đầu tiên chứa hai số nguyên nvàra (n: số xâu; m: độ dài mỗi xâu; 1 < n, m < 10).
  • Dòng thứ i trong n dòng tiếp theo chứa xâu Si, có độ dài m và chi chứa các chữ cái in thường (‘a’..‘z’).

Kết quả: Ghi ra file văn bản PVV.OƯT

  • Nếu bài toán có lời giải: Ghi xâu p có độ dài m và chỉ chứa các chữ cái in thường (‘a’..‘z’). Nếu bài toán có nhiều lời giải: Ghi bất kỳ xâu p nào thỏa mãn.
  • Nếu bài toán không có lời giai: Ghi số -1.
PW.INPPW. OUT
2 4abab
abac
zbab

 

Bài 5: Sụ lây lan (2.0 điểm)

Covid-19 lây lan phô biến nhất khi tiếp xúc gần. Những người ớ gần với người mắc Covid-19 hoặc tiếp xúc trực tiếp với người đó sẽ có nguy cơ lây nhiễm cao nhất.

Giả sử có n người (được đánh số từ 1 đến n) đang ở trên 1 con đưòng trong thành phố. Có thê xem vị trí của họ là những điểm trên trục tọa độ Ox. Với mồi chỉ số i, vị trí cua người thứ i là Uj.

o                               a,             a:                            aj                                34 X

  • ——— I——— 1——– +——— t——- t——— 1——– +——– t———- í——— >

0         1234 5 6789

Theo thông báo của cơ quan Y tế , trong n người này có đúng một người đã bị nhiễm Covid-19, nhưng chưa biết đó là ai. Biết rằng, vi-rút sẽ lây lan từ người bị nhiễm sang người không nhiễm bệnh khi khoảng cách tối đa giữa họ bằng 2.

Một người bị nhiễm bệnh sẽ lây nhiễm cho người khác theo hiệu úng tiếp xúc gần. Nhóm người bị nhiễm bệnh này được gọi là tập hợp ngưòi nhiễm bệnh cuối cùng.

Yêu cầu: Hây tìm ra số nhỏ nhất và số lớn nhất những người bị nhiễm cuối cùng, tức là tìm ra con số này trong trường hợp tốt nhất và trong trường hợp xấu nhất có thể

xảy ra.

Dữ liệu: Vào từ file văn bản COVID.INP gồm:

  • Dòng đầu tiên chứa số nguyên n là số người trên đường (1 < n < 100).
  • Dòng thử hai chứa n số nguyên ai, a2, …, an cách nhau bởi dấu cách. Biết rằng 0 < a, < 100.

Kết quả: Ghi ra file văn bản COVID.OƯT chứa hai số nguyên cách nhau bởi dấu cách cho biết số nhỏ nhất và số lớn nhất những người có thê bị nhiễm cuối cùng.

COVID.INPCOVID.OUT
21 1
3 6
33 3
13 5

 

———————————————— HẾT———————————————— ——– :

■ Các tập tin, chương trình phai đặt theo đúng quy định (ca phần tên và phần mở rộng).

Thí sinh không được sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Họ và tên thí sinh:…………………………….. số báo danh:………………………………………………………

 

KỶ THI CHỌN HỌC SINH GIỘI CÀP TỈNH [RUNG HỌC Cơ Sớ NSm liợc 2021-2022

Môn: TIN HỌC

Thòi gian lảm bài: 15(1 Ịiluìt íkhông kẽ ỉ hởi gian giao đè) Ngáy ihi: 22/03/2022 ị De thi cỏ 04 trang, gồm 05 bùi)

tông ouàn cắc bãi thi

Tèil bàiỉ ilt thương trìnhKilt dữ liựu vàoHiu két quỉ
Bâi 1.SỚ NGUYÊN TỒ DÃY DỨKULLPRIMAKULLPH.JM.LNPí ULLPR.IM.OUT
lỉúi 2.MẶT MẢSIiCRCODE*SECRƠODL.INPSLCRCODL.OUT
Bài 3,CHON PHẢN THƯỞNGBONUSSiiL-*BONLSSLL.INPBỜNUS.SEL.OUT
Bài 4,TAM GIACTR1ANGLE.IRÍANGLL 1NPTR1ANGLL.OUT
tỉai 5.LẢI KLP NGAN HÀNGCOM PIN TACOMPlNTdNPCOMPLNT.OUT
Dổu * dược thay thề bới PAS, CPPt py cún ngôn ngừ tập trình được Sti dạng tương ứng tù PùỊCữl, £.’++, Pyihún hoặc phần mớ rộng tương ửng v&ĩ M:\LT khác.

 

 

Dải I: SỎ NGUYÊN TỞ BẦY DV (4.Ộđiềm)-TỄn thương trhMỈa: FULLP(tlM/ hỉuìỉ niệm:

  • **sỏ HgĩtyỀn tố ‘,ỳ: sắ itgụyỂn dương p (p > ĩ) là sỗ nguyện tỏ khi p chi cù hai ước sỗ ỉà ỉ và chinh nỏ.
  • 4,1 Sổ nguyên tể dầy dù”. Là sé ngụyẻn lổ mủ khỉ viẻt đàơ ngược sẬ đò thi sổ đáo ngược Vần Ịà sa nguyên tà. Vi dụ: Sâ Í3 lá liSữ ĩtguyỂn tổ dãy dii” vỉ khi đặo ntược sô 13 La dược sả31 cEtìg.íè sổ ũgtiy£n lổ, sẶ 53 khủng pliái lá “íd nguyên tổ dầy dù” vl khi dáo ngược sả 53 La được 9ổ 35» và 35 khômỉ phui Jả s6 nguyên lố.

Yeu tầu: Hăy vhk chương ưinh kicm tra trang dằy 5′ sả nguyên dương ù ị cho ưước cù nhữn£                                                                          sỏ

náo Lá **Í1Ử ngiẹyẽn lủ đảv đu’.

I)ữ litií vầo: Đtíợc cbo traÉỊg lộp văn ban KULLPRIM.ÍNPị gồm 2 dóng.

  • Dõng dâu liỏn ghi so .’V ị ì <jV <iỉ(f), lá Sủ phân tư của dẫy.
  • Dùng thứ hai ghi N sả ngưyÊn dưímg ữị {i=l..\. 2 <ứi ệ iũlw), moi số tách nhau bói dảu

cách.

Dứ iiệu ra: Tệp văn hán KULLPKI.M.OI T gốm một dóng thừa dảy ,li’L> nguỳện té đầy du” trơn lì LÍp dừ liệu vào. NẾu trang diy ùi khớmì cộ “iYJ lĩgưyỂn té đầy du” [hi gbi lá 0,

Ví dụ:

Mòn Tín taọẹ_22WV2tì22_Tr»ns 1/4

 

Bàl 1: MẠ í MÃ (4,0 điểm) – TỀH chương trình: SECRCODE.*

]’rong đợt căm trại Mừng Dáng Mừng Xuân, trưùựg THCS 26/3 lủ chức phát thướng cho nhừna học sinh có ihãnh tích cao trong cuộc thi rin học líé. Bạn An dược mọt cỏniĩ ty ABG thưởng phẩn iỊjềm diẹt viniB 1A một thè cù chùa mà hán quyền. Tiên thê cỏ ghi một ỊÍẾU hi tự, mả bán quyền lủ so lượng ki Lự xuái hiện ưong xâu dó theo thứ tự uiphabet (thử tụ lir đien).

Vi dụ: Neư xâu ghi trên ihc lá abzaabbbbbzbbbb [hi có 3 kỉ lự ít, ]|j kỉ tự b vả 2 ki lự r. Nên mà bán quyẾũ lá 3 102.

YÊU cầu: Bạn lú chuvdn VÍCII về lập trinh Lin học, hây ưiÍLp An tim mâ hun quyỂn trẽn [hè.

L>ữ liệu váo: Dược cho trưng tcp ván bán SECItCODE.INP lá một xâu (chửa ki lự thướng ‘Ả.:i trong bâng chữ cái ‘L iệng Anh, chiều dái của xáu khỏng quá lữ1)

Dứ liệu ra: Tệp vãn bán SECkCODE.OUT, ưhi chuồi sắ Lú mã bún quyên.

Vi dụ í

SECRCODE.1NPSECRCODE.OLT
bcỉi{hiiicfxyzhbbcccccỉỉceeex\:xyzzz246351334

 

Giúi thích. Chuồi củ 1 kỉ lự ÚT, 4 ki tự b. 6 k[ Lự c> 3 ki lự íỉf 5 ki Lự e, 1 ki tư£ 3 ki lự JC, 3 kE [ự y vá A kí lự z ncn mả bán quyên Lú 246351334.

Bùi 3: CHỌN THAN THƯỞNG (4.0 điếm) – TỄn chương trinh: BQMlSSEL.*

Trong ký thi học sinh gioi L HCS cáp huyện mủn Toán, trong nỏi dung dề có nói VẺ $fỉ chính ph ương ‘ lá sỏ bãỉig bình phương đúng cua một sổ nguyên. i ỉar hỉàíi đơn gúin, sổ chinh phìỉiĩỉỉg lả một sổ tự nhiên cỏ căn bậc hai cùng ià mật sâ tự nhiên. Bạn An dược giái nhất trong kỷ thi đó, thày Thú giáo viẻn dạy toán hoi dưrtng cho An cỏ phằn ihuứng dặc hiệt cho An, dòng ihới cũng muốn kiềm tra kiến thức toản và lư duy vc lập Irinh tin học cũa An như the nèo đẻ dịnh hướng bạn di ngành CNTT Lrong thửi dại cồng mìhc 4.0. ĩhầy yẾu cẳu An chọn nhừng phần thướng má thấy dã xếp ưèn bán thánh l bán tỉ ịĩỉiíỉ trận) gom m dóntĩ vả n CỘI, mi^i phản ihướniì có aiá trị neuvén dương pỊị, (ỉ< Oỹ<Ị0 Phần thưởng An nhặn dưực lá piông tát cá các “Só chỉnh pỉnrơng” cũa báng,

YẾU càu: Hạn bây Lặp trinh eiũp An nhịn phẩn thướng.

DữUệu vàn: Được cho Lrong tọp vin hun BQNUSSEL.INP gèm:

  • Dõng dầu ticn chứíi 2 sả ngu vón dương ỉti, n (2 <tĩt, n < ÍOrị, Là sơ dõng vú CỘI cùa bang phằn thướng, lách nhau bôi một diu cách.
  • tn dóng licp theo, moi dỏng chừa n số nguyẫn dương ữịị (j-lJ,fFỉ,ý=l..jỉ)1 mội sỏ lách nhau bới một dấu cảch.

Dử ILẹu ra: Tệp vân bán BONLiSâEL.QUT ghi mộl sả, Lá phần ihướng mả An được ihảy thương

Vỉ dụ:

BONUSSEL.INPBỘN USSEL.ÓƯT
234
2 3 4
357

 

 

3535
123
í 5 16
7H9
Hài 4: TAM GIÁC (4.Ũ đìẻtìi) – TỄn chương trình: TKIANGLE.*

 

Kỉìủĩ nĩệiìt :

  • ‘ Tam giỉtL \ Trơna mát phiìne, ba tiiéiíì A„ B„ c lạo ihánb tam giác khi ctmúng khòm; củng nầm trỂn mọi đưimg [hãng hay nbi cách khác, lơn£ dợ dãi hai cạnh JcVn bơn cạnh thứ ba.
  • “Định lý Pĩtagù’. I’am giác ABC vudng khi Lorití binh phương hai cạnh Cua lam ai ác bảng bình phương cạnh cỏn lại của Lam giác.
VI dự:

cA, B. c là 3 đinh cửa tam giác * A, li, c khũmỉ cúng năm trcn dường ihărtg d
d….&AB+ BC > AC và Alỉ + AC > BC vả 8C + ẠC >ẬB.
A**■ TVun giác ABC tà fattì giác vnâỉig tiiĩ (tinh c

& AB: = AƠ + iiơ

YẾU cầu: Lrẻn mầl phàng tọa dụ (OXY) chu 3 dicmẢ, Bị c cũ Lọa dt) lần lượt hì (íi.Xth (xstysị, ‘ệtc;yc)- Bạn hây lập trinh kiểm tra 3 đinh đó tạo thánh tam giác V uũng không?

 

 

Líừ IĨCIL vào: Buợc chu ưung ọp vàn hán TRlANGLL.INP gầm:

  • Dõng dằu II cn chứa Sơ nguyên dương 7\ lủ sầ tượng bộ ba đicm .4, 8, c
  • 7’dàng Licp theo. mồi dửng ehi lụa độ 3 đicm A(xA;yA)ị B{xs;yBL C(xctyc), (các So %A -VjỊf, y-B Jtũ yc lá các su thực và -lO^í yA Xgt ys %c yc ^lO1), các: sỏ Lảcb nhau búi dắu cách.

L>ừ licu ra: Tệp vãn ban TỉtlANGLb.OlJ l, yhi T dùng, mui dỏng gbi ưYES” nẺu lá tam giảc vuông hí lặc “NIO'” nẾu không hi Lam giác vuông.

Ví dụ:

TRIANGLE.INPtriangle,out
iNO
0.0 0.0 LO l.u 2.0 2.0YES
ềJữ 0.0 0.0 iừ.o 0.0 0.0NO
1.0 2.0 3.5 ktì 1.0 2.0

 

Lim Ỷ’ + Binh phương khơáns cách giừa 2 di êm A(XÀy\i) vả lì(.\-B;vsỉ lá

>íBi = (jraJ>;!+(yJ->’J>1

+ Oc hạn ehc sai sớ Ironiĩ [inh toán ki cu sà thục, học sinh nành việc lẩy cần bậc 2 rơi binh phương cùa cfin bậc 2.

Bài 5: LÃI KÉP NGÂN HÀNG (4.0 điểm) – Tên chương trình: COMPINT.*

Khái niệm: “Lãi kép” trong tiếng Anh là Compound interest. Đó là số tiền lãi được xác định dựa trên cơ sở số tiền lãi của các thời kì trước đó được gộp vào vốn gốc để làm căn cứ tính tiền lãi cho các thời kì tiếp theo.

Ông Ba sau khi tích lũy làm ăn nhiều năm dư được 1 số tiền lớn, để tiêu vặt và đóng tiền học phí hàng tháng cho An, Ông đã gửi ngân hàng với lãi suất nhận hàng tháng (Lãi đơn). Do trong đợt dịch Covid-19 vừa qua, để hạn chế tiếp xúc và ra ngân hàng đông người, Ông đã thay đổi hình thức gửi ngân hàng thành hình thức “Lãi kép’’”.

Yêu cầu: Với số vốn ban đầu là M, lãi suất hàng tháng là r%. Bạn hãy lập trình tính tổng số vốn và tiền lãi sau n tháng mà ông Ba nhận được theo hình thức “Lãi kép”.

Dữ liệu vào: Được cho trong tệp văn bản COMPINT.INP:

  • Dòng đầu tiên là số nguyên T (1<=T<=1000) ^
  • T dòng tiếp theo, mỗi dòng gồm 3 số M, r, n lần lượt là tiền vốn ban đầu, lãi suất %/tháng, số tháng. Trong đó, 106 <M <1012, 0.1< r <1.1, 1< n < 5*102.

Dữ liệu ra: Tệp văn bản COMPINT.OUT ghi một số thực, định dạng 1 chữ số thập phân, là tổng số tiền nhận được sau n tháng.

Ví dụ:

Giải thích. Ông Ba gửi 2 khoản tiết kiệm như sau:

Ở khoản tiết kiệm 1: Ông Ba gửi 1000000, với lãi suất 0.7%:

  • Sau 1 tháng. T = M + M*rl100 = 1000000+1000000*0.007=1007000.0
  • Sau 2 tháng. ĩ2 = T + Ti*rl100 = 1007000+1007000*0.007 = 1014049.0
  • Sau 3 tháng. T = T2 + T2*rl100 = 1014049+1014049*0.007 = 1021147.3 Tương tự, ở khoản tiết kiệm 2: Ông Ba gửi 10000000, với lãi suất 0,5%:
  • Sau 1 tháng. Ti = M + M*rl100 = 10000000+1000000*0.005=10050000.0
  • Sau 2 tháng. T = T + T1*rl100 = 10050000+10050000*0.005=10100250.0
  • Sau 10 tháng. Tio = T + T9*rl100 = 10459105.8+10459105.8*0.005=10511401.3

———————————————– hét———————————————–

Thí sinh không đqợc sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.

Họ và tên thí sinh. …………………………………………… Số báo danh : ……………………………………………………………

 

 

 

Tên và chữ ký Cán bộ coi thi 1

Tên và chữ ký Cán bộ coi thi 2

 

KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
TRUnG học Cơ Sở

Năm học 2022-2023 Môn: TIN HỌC

Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 21/3/2023 ^

(Đề thi có 5 trang, gồm 5 bài)

TỔNG quan các BÀi thi

Thứ tựrpA I A •

Tên bài

File chương trìnhFile dữ liệu vàoFile kết quả
Bài 1Tương đồngSAME.*SAME.INPSAME.OUT
Bài 2Tách xâuSTRING.*STRING.INPSTRING.OUT
Bài 3May mắnLUCKY.*LUCKY.INPLUCKY.OUT
Bài 4Tam giácTRIANGLE.*TRIANGLE.INPTRIANGLE.OUT
Bài 5Chở hàngGOOD.*GOOD.INPGOOD.OUT
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.

 

 

Bài 1: (4 điểm) Tương đồng                                                                                                     Tên chương trình: SAME.*

Vườn bưởi nhà Alice có n cây. Để theo dõi sự phát triển của các cây bưởi của mình, Alice thường xuyên đo và ghi lại chiều cao của chúng. Trong tuần này, Alice có được bảng chiều cao của các cây bưởi là một dãy số nguyên a[1], a[2],…, a[n], trong đó a[i] là chiều cao của cây bưởi thứ i. Nhìn vào dãy số, Alice biết có những cây có chiều cao trùng nhau và Alice gọi mỗi tần số trùng nhau là tần số “tương đồng”.

Do số lượng cây bưởi nhiều nên Alice muốn nhờ các bạn lập trình tìm tần số tương đồng lớn nhất của các cây bưởi là bao nhiêu?

Dữ liệu vào: Đọc từ file SAME. INP gồm 2 dòng:

  • Dòng 1: gồm một số nguyên dương n (0 < n <106).
  • Dòng 2: gồm n số nguyên dương a[i] (0 < ai <106), mỗi số ứng với chiều cao của một cây bưởi, giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file SAME.OUT gồm duy nhất một số nguyên dương là tần số tương đồng lớn nhất.

Ví dụ:

SAME.INPsame.out
7

9 8 6 8 5 6 10

2
2

3 10

1

 

Giải thích bộ test 1:

Có 1 chiều cao: 5;

Có 2 chiều cao: 6;

Có 2 chiều cao: 8;

Có 1 chiều cao: 9;

Có 1 chiều cao: 10

->Tần số tương đồng lớn nhất là: 2

Bài 2: (4 điểm) Tách xâu                                                          Tên chương trình: STRING.*

Hôm nay, mẹ và Cám đi dự dạ hội. Tấm cũng rất muốn được đi. Nhưng trước khi đi, mẹ Cám giao cho Tấm một công việc để làm khó Tấm như sau:

Cho một xâu s gồm các ký tự là các chữ cái in hoa hoặc in thường (trong bảng chữ cái Tiếng Anh) và các kí tự số. Mẹ kế yêu cầu Tấm hãy tách các ký tự trong xâu s thành hai phần như sau:

Phần 1: gồm các chữ cái có mặt trong s nhưng viết theo thứ tự ngược lại.

Phần 2: gồm các chữ số có mặt trong xâu s nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Nếu Tấm thực hiện xong công việc thì mới được đi dự tiệc. Nhưng Tấm có thời gian rất ít nên chưa giải được bài toán. Các bạn đội tuyển Tin học hãy giúp đỡ Tấm giải bài toán để Tấm còn được đi dự tiệc nhé!

Dữ liệu vào: Đọc từ file STRING.INP gồm 1 dòng chứa xâu s có độ dài không quá 103 ký tự. Dữ liệu vào đảm trong xâu s luôn có kí tự chữ cái và kí tự chữ số. Kết quả: Ghi ra fíle STRING.OUT gồm 2 dòng:

  • Dòng 1: gồm các chữ cái trong xâu s nhưng được viết theo thứ tự ngược lại.
  • Dòng 2: gồm các chữ số trong xâu s, nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.

Ví dụ:

STRING.INPSTRING.OUT
m2aC0ma2T3TamCam

0223

 

Bài 3: (4 điểm) May mắn                                                          Tên chương trình: LUCKY.*

Trong buổi tiệc liên hoan cuối năm của công ty cung cấp điện thoại Thế Giới Trẻ, ghế ngồi trong hội trường của khách mời được bố trí thành một ma trận hình chữ nhật gồm m hàng và n cột. Để buổi liên hoan thêm vui vẻ, ban tổ chức cho mỗi khách mời rút ngẫu nhiên một phiếu, trên phiếu có ghi một số nguyên dương trong phạm vi từ 1 đến 109.

Ban tổ chức sẽ trao cho những người may mắn mỗi người một phần quà là một chiếc điện thoại. Biết rằng người may mắn là người có số ghi trong phiếu của

mình lớn hơn trung bình cộng của số trong phiếu của những người ngồi xung quanh người đó.

Xung quanh một người được định nghĩa như sau:

Trường hợp 1: Người ngồi ở vị trí góc (trên trái, dưới trái, trên phải, dưới

phải) của hình chữ nhật thì chỉ có 2 người ngồi xung quanh.

Trường hợp 2: Người ngồi ở vị trí bìa (trừ góc) thì có 3 người xung quanh. Trường hợp 3: Người ngồi ở các vị trí còn lại có 4 người xung quanh.

 

Trường hợp 1                                   Trường hợp 2                                                          Trường hợp 3

Ô gạch sọc chỉ vị trí xung quanh của vị trí được tô đen.

Bạn hãy giúp ban tổ chức xác định số lượng điện thoại cần phải chuẩn bị để trao cho những người may mắn.

Dữ liệu vào: Đọc từ file LUCKY.INP gồm:

  • Dòng 1: gồm hai số nguyên dương theo thứ tự m, n (0 < m, n <103), giữa m và n được cách nhau bởi dấu cách.
  • m dòng tiếp theo, mỗi dòng gồm n số nguyên dương có giá trị không quá 109, giữa hai số cách nhau bởi một dấu cách.

Kết quả: Ghi ra file LUCKY.OUT gồm một số nguyên là số điện thoại ban tổ chức cần chuẩn bị.

Ví dụ:

LUCKY.INPLUCKY.OUT
3 43
1 4 3 1
1 1 5 2
2 1 2 1

 

Giải thích:

Số lượng điện thoại cần chuẩn bị là 3, vì có ba người may mắn:

+ Người thứ nhất ngồi ở hàng 1, cột 2, có số phiếu là 4 (có 3 người xung quanh) + Người thứ hai ngồi ở hàng 2, cột 3, có số phiếu là 5 (có 4 người xung quanh) + Người thứ ba ngồi ở hàng 3, cột 1, có số phiếu là 2 (có 2 người xung quanh)

Bài 4: (4 điểm) Tam giác                                                  Tên chương trình: TRIANGLE.*

Alice có n que tính, mỗi que có độ dài là một số nguyên dương. Alice muốn tạo ra các tam giác bằng cách ghép ba que tính lại với nhau, độ dài mỗi cạnh là một que tính.

Em hãy giúp Alice đếm xem có bao nhiêu tam giác được tạo thành từ các que tính này và cho biết diện tích lớn nhất trong các diện tích của các tam giác ghép được là bao nhiêu?

Biết rằng:

+ Hai tam giác được gọi là khác nhau nếu có ít nhất một que tính khác nhau.

+ Ta có thể tính diện tích tam giác theo công thức sau :

s=Vp * (p — à) * (p — b) * (p — c)

Trong đó a,b,c là độ dài 3 cạnh của tam giác, và p là nửa chu vi của tam giác.

Dữ liệu vào: Đọc từ file TRIANGLE.INP gồm:

  • Dòng 1: gồm một số nguyên dương n (3 < n < 100)
  • Dòng 2: gồm n số nguyên dương a[1], a[2], …, a[n] là độ dài của n que tính (1 < a[i] < 106 1<i<n). Giữa các số được cách nhau bởi một khoảng trắng.

Kết quả: Ghi ra file TRIANGLE.OUT gồm:

  • Dòng 1: Ghi số lượng tam giác có thể ghép được.
  • Dòng 2: Ghi một số thực là diện tích lớn nhất của tam giác, kết quả làm tròn đến 2 chữ số ở phần thập phân. Trường hợp không có tam giác nào thì dòng này ghi -1.
TRIANGLE.INPTRIANGLE.OUTGiải thích
53Có 3 tam giác được tạo từ 5 que tính trên:
1 4 5 2 36.00Tam giác 1: Que thứ 2, 3, 4 Tam giác 2: Que thứ 2, 3, 5 Tam giác 3: Que thứ 2, 4, 5 Trong đó tam giác thứ 2 có 3 độ dài là 4 5 3 có có diện tích lớn nhất là 6.00
44Có 4 tam giác được tạo từ 4 que tính trên:
2 2 2 21.73Tam giác 1: Que thứ 1, 2, 3

Tam giác 2: Que thứ 1, 2, 4

Tam giác 3: Que thứ 1, 3, 4

Tam giác 4: Que thứ 2, 3, 4

Trong đó 4 tam giác đều có cùng diện

tích là: 1.73

30Không ghép được tam giác nào
1 2 3-1

 

Bài 5: (4 điểm) Hàng hóa                                                            Tên chương trình: GOOD.*

Cửa hàng tạp hóa XYZ cần chở n kiện hàng giao cho khách. Kiện hàng thứ i có trọng lượng là a[i] tấn. Cửa hàng có một xe tải có trọng tải là m tấn. Trong

chuyến hàng đầu tiên, cửa hàng muốn chở những kiện hàng đi giao thỏa mãn các yêu cầu sau:

  • Yêu cầu 1: Ưu tiên kiện hàng có trọng lượng lớn hơn sẽ được chở đi.
  • Yêu cầu 2: Xe còn đủ trọng tải chở được thì chọn tiếp kiện hàng khác thỏa mãn yêu cầu 1.

Em hãy lập trình giúp cửa hàng xác định trọng lượng các kiện hàng của chuyến xe đầu tiên.

Dữ liệu vào: Đọc từ file GOOD.INP gồm hai dòng:

  • Dòng 1: gồm số nguyên dương n (1 <n<103) là số kiện hàng và số nguyên dương m (0 < m < 109) là trọng lượng của xe tải. Giữa n và m được cách nhau bởi dấu cách.
  • Dòng 2: gồm n số nguyên dương a[i] (0 < a[i] <109, a[i] < m, 1<i<n) thể hiện trọng lượng của kiện hàng thứ i. Giữa các số được cách nhau bởi dấu cách.

Kết quả: Ghi ra file GOOD.OUT các số nguyên dương là trọng lượng của các kiện hàng trong chuyến xe đầu tiên theo trọng lượng giảm dần.

GOOD.INPGOOD.OUT
5 10

7 5 1 3 8

8 1
5 12

2 8 2 4 1

8 4

 

Giải thích bộ test 1:

Có n = 5 kiện hàng và xe có trọng tải m = 10 tấn Các kiện hàng có trọng lượng lần lượt là: 7 5 1 3 8 Vậy các kiện hàng được chở đi trong chuyến đầu tiên có trọng lượng lần lượt là 8 và 1.

Vì kiện hàng có trọng lượng là 8 lớn hơn trọng lượng các kiện hàng còn lại và 8 < m=10 nên được ưu tiên chọn. Trọng tải xe còn có thể chứa được là 10 – 8 = 2, nên chọn tiếp kiện hàng có trọng lượng là 1.

………………………………………………….. HẾT…………………………………………………..

Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.

Họ và tên thí sinh: ……………………………………………………………………………….. Số báo danh:……………………………………………………………………..

 

KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH

TrUnG học Cơ Sở

Năm học 2023-2024
Môn thi: TIN HỌC

Thời gian làm bài: 150 phút, không kể thời gian phát đề
Ngày thi: 27/3/2024

 

 

 

 

 

 

 

 

 

 

TỔNG quan các bài thi

Thứ tựTên bàiFile chương trìnhFile dữ liệu vàoFile kết quả
1Tiền điệnELCOST.*ELCOST.INPELCOST.OUT
2Độ mạnh của xâuSTRONG.*STRONG.INPSTRONG.OUT
3Tổng dòng cộtSUM.*SUM.INPSUM.OUT
4Xâu lặpSUBSTR.*SUBSTR.INPSUBSTR.OUT
5Phần thưởngGIFT.*GIFT.INPGIFT.OUT

Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.

 

 

 

Học sinh chỉ được chọn một trong các môi trường quy định ở trên lập trình để làm toàn bộ bài thi.

Bài 1: Tiền điện (4,0 điểm)                                             Tên chương trình: ELCOST.*

Giá bán lẻ điện sinh hoạt được tính theo 3 bậc gồm:

  • Bậc 1: 100 Kwh đầu tiên, có giá là 2500 đồng/Kwh
  • Bậc 2: Từ Kwh 101 đến 200, có giá là 3000 đồng/Kwh
  • Bậc 3: Từ Kwh 201 trở lên, có giá là 3500 đồng/Kwh

Yêu cầu: Tính tổng tiền điện phải trả của một khu phố gồm n hộ gia đình.

Dữ liệu vào: Đọc từ file văn bản ELCOST.INP gồm hai dòng:

  • Dòng 1: Chứa số nguyên dương n (1 < n < 104) là số lượng hộ gia đình.
  • Dòng 2: Chứa n số nguyên dương ai (1 < i < n, 1 < ai < 104), với mỗi ai là số Kwh sử dụng của hộ gia đình thứ i. Giữa hai số liên tiếp được cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản ELCOST.OUT một số nguyên dương là tổng tiền điện của n hộ gia đình.

Ví dụ:

ELCOST.INPELCOST.OUT
3

15 165 205

1050000

 

 

Giải thích:

Có 3 hộ gia đình sử dụng số Kwh lần lượt là: 15, 165 và 205

Số tiền hộ thứ nhất: 15*2500 = 37500

Số tiền hộ thứ hai: 100*2500 + 65*3000 = 445000

Số tiền hộ thứ ba: 100*2500 + 100*3000 + 5*3500 = 567500

Nên tổng số tiền là: 37500 + 445000 + 567500 = 1050000

Bài 2: Độ mạnh của xâu (4,0 điểm)                                Tên chương trình: STRONG.*

Cho xâu s chỉ gồm các kí tự in thường trong bảng chữ cái Tiếng Anh và kí tự số từ ‘0’ đến ‘9’.

Yêu cầu: Tìm độ mạnh của xâu. Biết rằng độ mạnh của xâu là tích của số kí tự phân biệt xuất hiện trong xâu với số lần xuất hiện nhiều nhất của một kí tự trong xâu.

Dữ liệu vào: Đọc từ file văn bản STRONG.INP gồm một dòng chứa xâu s có chiều dài không quá 103 kí tự. Trong xâu không chứa khoảng trắng và kí tự đặc biệt.

Kết quả: ghi ra file văn bản STRONG.OUT một số nguyên dương là độ mạnh của xâu.

Ví dụ:

STRONG.INPSTRONG.OUT
xy11z2yyzxy0y30
ggggg__________________5

 

 

Giải thích:

Ở test 1: Xâu s = ‘xy11z2yyzxy0y’. Số kí tự phân biệt trong xâu s là 6 (gồm ‘x’, ‘y’, ‘1’, ‘z’, ‘2’, ‘0’) và số lần xuất hiện nhiều nhất của một kí tự là 5 (kí tự ‘y’). Nên độ mạnh của xâu là 6 * 5 = 30.

Ở test 2: Xâu s = ‘ggggg’. Số kí tự phân biệt trong xâu s là 1 (kí tự ‘g’) và số lần xuất hiện nhiều nhất là 5. Nên độ mạnh của xâu là 1 * 5 = 5.

Bài 3: Tổng dòng cột (4,0 điểm)                                                                                          Tên chương trình: SUM.*

Cho ma trận a gồm m dòng và n cột. Ma trận b được tạo bằng cách: bij = (tổng dòng i trên ma trận a + tổng cột j trên ma trận a) – aij Yêu cầu: Tìm giá trị nhỏ nhất trong ma trận b.

Dữ liệu vào: Đọc từ file văn bản SUM.INP gồm nhiều dòng:

  • Dòng 1: Chứa hai số nguyên dương theo thứ tự là m, n (1 < m, n < 102). Giữa hai số cách nhau bởi một dấu cách.
  • m dòng tiếp theo, mỗi dòng chứa n số nguyên dương aij (0 < aij < 109). Giữa hai số liên tiếp được cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản SUM.OUT một số nguyên dương là giá trị nhỏ nhất tìm được trong ma trận b.

Ví dụ:

SUM.INPSUM.OUT
2 310
3 2 4
2 1 5

 

 

Giải thích: Ma trận b là 11 10 14 11 10 12

Nên giá trị nhỏ nhất trong ma trận b là 10.

 

Cách 1: Dùng mảng 2D để tính tổng cột (Không dùng thư viện ngoài)

  • Ý tưởng: Duyệt từng phần tử của ma trận và tính tổng cột trong quá trình đọc dữ liệu.
  • Độ phức tạp: O(m × n), đủ nhanh cho m, n ≤ 10⁶.

python

Sao chépChỉnh sửa

 

def tìm_tổng_nhỏ_nhất(tệp_vào):
    with open(tệp_vào, 'r') as file:
        m, n = map(int, file.readline().split())  # Đọc m (số hàng) và n (số cột)
        tổng_cột = [0] * n  # Mảng lưu tổng các cột
        for _ in range(m):
            dòng = list(map(int, file.readline().split()))
            for j in range(n):
                tổng_cột[j] += dòng[j]  # Cộng dồn vào cột tương ứng
    return min(tổng_cột)  # Trả về tổng cột nhỏ nhất
# Đọc từ tệp SUM.INP và ghi kết quả vào SUM.OUT
tệp_vào = "SUM.INP"
tệp_ra = "SUM.OUT"
kết_quả = tìm_tổng_nhỏ_nhất(tệp_vào)
with open(tệp_ra, "w") as file:
    file.write(str(kết_quả) + "\n")

 

Cách 2: Dùng NumPy để xử lý nhanh hơn (Dùng thư viện ngoài)

  • Ý tưởng: Dùng thư viện NumPy để tính tổng nhanh hơn.
  • Lợi ích: Tối ưu tốc độ tốt hơn với dữ liệu lớn.

python

Sao chépChỉnh sửa

 

import numpy as np  # Import thư viện NumPy
def tìm_tổng_nhỏ_nhất_numpy(tệp_vào):
    with open(tệp_vào, 'r') as file:
        m, n = map(int, file.readline().split())  # Đọc m, n
        dữ_liệu = np.loadtxt(file, dtype=int)  # Đọc ma trận vào mảng NumPy
    tổng_cột = dữ_liệu.sum(axis=0)  # Tính tổng từng cột
    return tổng_cột.min()  # Trả về tổng nhỏ nhất
# Chạy chương trình
kết_quả = tìm_tổng_nhỏ_nhất_numpy("SUM.INP")
with open("SUM.OUT", "w") as file:
    file.write(str(kết_quả) + "\n")

 

So sánh hai cách

CáchDễ hiểuHiệu suấtDùng thư viện ngoài
1. Dùng mảng 2D✅ Rất dễ hiểuTốt (O(m×n))❌ Không
2. Dùng NumPy⚠ Cần hiểu NumPyNhanh hơn✅ Có

➡ Nếu không muốn dùng thư viện ngoài, hãy dùng cách 1. Nếu muốn tối ưu hiệu suất, hãy dùng cách 2 với NumPy.

 

Bài 4: Xâu lặp (4,0 điểm)                                                Tên chương trình: SUBSTR.*

Xâu lặp là một xâu có đoạn đầu ngắn nhất của nó được lặp lại nhiều lần. Ví dụ ‘xyxyxyxy’ là một xâu lặp vì nó có đoạn đầu ngắn nhất là ‘xy’ được lặp lại nhiều lần. ‘xyxy’ cũng được lặp lại nhưng không được tính là đoạn đầu vì nó không ngắn nhất.

Yêu cầu: Cho n xâu. Hãy ghép đoạn đầu của mỗi xâu lặp theo thứ tự xuất hiện của xâu (nếu xâu đó là xâu lặp).

Dữ liệu vào: Đọc từ file văn bản SUBSTR.INP gồm nhiều dòng:

  • Dòng 1: Chứa số nguyên dương n (1 < n < 103) là số lượng xâu.
  • n dòng tiếp theo, mỗi dòng chứa một xâu có độ dài không quá 103 kí tự.

Lưu ý: Trong xâu chỉ chứa kí tự thường từ ‘a’ đến ‘z’ trong bảng chữ cái Tiếng Anh (không chứa khoảng trắng, kí tự số và các kí tự đặc biệt). Dữ liệu vào đảm bảo luôn có xâu lặp.

Kết quả: Ghi ra file văn bản SUBSTR.OUT là xâu ghép thu được.

Ví dụ:

SUBSTR.INPSUBSTR.OUT
4xyabach
xyxyxyxy
abcab
abacabac
hhh

 

 

Giải thích:

Trong 4 xâu, có 3 xâu lặp theo thứ tự là: ‘xyxyxyxy’, ‘abacabac’, ‘hhh’. Ba đoạn đầu tương ứng là ‘xy’, ‘abac’, ‘h’. Nên xâu ghép là: ‘xyabach’.

Bài 5: Phần thưởng (4,0 điểm)                                                                                          Tên chương trình: GIFT.*

An được mẹ cho một số phần thưởng. Có nhiều phần thưởng được xếp thành một hàng, mỗi phần thưởng có giá trị trong khoảng từ 1 đến 109. An muốn chọn những phần thưởng có giá trị tăng dần liên tiếp nhiều nhất.

Yêu cầu: Cho biết số lượng phần thưởng mà An chọn được như mong muốn.

Dữ liệu vào: Đọc từ file văn bản GIFT.INP gồm một dòng chứa các số nguyên dương là giá trị của các phần thưởng. Giữa hai số liên tiếp nhau cách nhau bởi một dấu cách.

Kết quả: Ghi ra file văn bản GIFT.OUT một số nguyên dương là số lượng phần thưởng An chọn được.

Ví dụ:

GIFT.INPGIFT.OUT
2 4 3 5 7 8 64
1 5 4 3 5 6 6 5 8 63

 

 

Giải thích:

Ở test 1: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 4 (2 4 3 5 7 8 6)

Ở test 2: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 3 (1 5 4 3 5 6 6 58 6) ……. -…………… ……………….. HET……… –

Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.

Họ và tên thí sinh: ………………………………………….  Số báo danh:……………………………………………………………

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Khóa học Python online từ cơ bản đến nâng cao

 

Khóa học Python online từ cơ bản đến nâng cao