đây là đề thi rất hay cho các bạn yêu thích môn tin đây là đề thi rất hay cho các bạn yêu thích môn tin đây là đề thi rất hay cho các bạn yêu thích môn tin đây là đề thi rất hay cho các bạn yêu thích môn tin đây là đề thi rất hay cho các bạn yêu thích môn tin đây là đề thi rất hay cho các bạn yêu thích môn tin đây là đề thi rất hay cho các bạn yêu thích môn tin
OLYMPIC TIN HC SINH VIấN LN TH XV, 2006 Khi thi: ng i chuyờn Thi gian lm bi: 180 phỳt Ngy thi: 07-05-2006 Ni thi: TRNG I HC BCH KHOA H NI Tên bài Tên file chơng trình Tên file dữ liệu Hạn chế thời gian Tớnh im SCORE.* SCORE.INP 2s Bin i bng s TABLE.* TABLE.INP 5s Rỳt gn LIST.* LIST.INP 2s Nhng chic cc STICKS.* STICKS.INP 2s im nguyờn POINTS.* POINTS.INP 5s Phõn nhúm HQL.* HQL.INP 5s Nộp chơng trình ngun. Kết quả xuất ra luồng output chuẩn (màn hình). Ngoài kết quả thí sinh không đợc ghi bất cứ thông tin thêm. Hãy lập trình giải các bài sau đây: Bi 1: TNH IM Tờn chng trỡnh: SCORE.* Trong k thi vn ỏp hc sinh phi tr li cỏc cõu hi ca thy giỏo. Nu tr li ỳng, thy giỏo ỏnh du bng ký t C (Correct), nu sai thỡ ỏnh du N (No Correct). Khi hc sinh tr li ỳng, thy s a ra cõu hi tip theo khú hn cõu trc, cũn khi tr li sai thy s cho cõu hi mi d hn. Sau khi thi xong, kt qu ca mi hc sinh l mt xõu cỏc ký t C v N. im s ca hc sinh s c tớnh nh sau: Vi cỏc cõu tr li sai hc sinh khụng c im, vi mi cõu tr li ỳng hc sinh nhn c im bng s ln tr li ỳng liờn tip t cõu tr li ny tr v trc. Vớ d, nu kt qu l CCNNCNNCCC, thỡ im s s l 1+2+0+1+0+0+1+2+3 = 10. Yờu cu: Cho xõu kt qu di khụng quỏ 1000, hóy tớnh im ca hc sinh. D liu: Vo t file vn bn SCORE.INP: Dũng u tiờn cha s nguyờn T - s lng Tests, Mi dũng trong T dũng sau cha mt xõu kt qu thi. Kt qu: a ra lung output chun, gm T dũng, dũng th i cha kt qu tng ng vi Tests th i (1iT). Vớ d: SCORE.INP Kt qu 5 CCNNCNNCCC CCNNCCNNCC CNCNCNCNCNCNCN CCCCCCCCCC CCCCNCCCCNCCCCN 10 9 7 55 30 Trang 1/4 Bài 2: BIẾN ĐỔI BẢNG SỐ Tên chương trình: TABLE.* Cho một lưới ô vuông gồm n dòng và n cột. Các dòng được đánh số từ 1 đến n từ trên xuống dưới, các cột được đánh số từ 1 đến n từ trái qua phải. Ô nằm ở vị trí dòng i và cột j của lưới được gọi là ô (i,j). Trên lưới đã cho, khoảng cách từ ô (i,j) tới ô (p,q) được tính bằng: i- p+j-q.Tại ô (i,j) của lưới ghi số nguyên không âm a ij , i = 1, 2, , n ; j = 1, 2, , n. Với mỗi ô (i,j) gọi s ij là khoảng cách ngắn nhất từ ô (i,j) đến một ô khác 0 . Một ô (i,j) chứa số 0 được gọi là ô thay thế nếu tồn tại duy nhất 1 ô (p,q) thoả: a pq > 0, Khoảng cách từ ô (i, j) tới ô (p, q) bằng s ij . Yêu cầu: Tính số lượng ô thay thế trên lưới. Dữ liệu : Vào từ file văn bản TABLE.INP, gồm nhiều Tests: • Dòng đầu tiên chứa số nguyên T - số lượng Tests (1 ≤ T ≤ 10), • Tiếp theo là T nhóm dòng đưa ra thông tin về các Tests, trong mỗi nhóm: o Dòng đầu tiên ghi số nguyên dương n (n≤200). o Dòng thứ i trong số n dòng tiếp theo ghi n số nguyên dương a i1 , a i2 , , a in là các số trên dòng thứ i của lưới, i = 1, 2, , n; a ij ≤1000000. Hai số liên tiếp trên cùng một dòng được ghi cách nhau bởi một dấu cách. Kết quả: Đưa ra luồng output chuẩn, gồm T dòng, dòng thứ i chứa kết quả tương ứng với Tests thứ i (1≤i≤T). Ví dụ: TABLE.INP Kết quả 1 3 0 0 0 1 0 2 0 0 0 4 Bài 3: RÚT GỌN Tên chương trình: LIST.* Cho một dãy A gồm N số nguyên. Dãy A có thể được biểu diễn dưới dạng một xâu S theo các quy tắc sau: • Loại bỏ các phần tử trùng nhau trong dãy chỉ giữ lại một phần tử đại diện, • Các số còn lại được sắp xếp theo thứ tự tăng dần, • Lần lượt liệt kê các số tách nhau bởi dấu phẩy và một dấu cách sau dấu phẩy. • Dãy các số nguyên liên tiếp từ a tới b (a<b) có thể biểu diễn thành dạng "a, …, b". Ví dụ: Với dãy A: 1 3 5 -10 3 4 6 2 7 10 9 8 10 3 10 10 ta có biểu diễn S="-10, 1, , 10". Có thể có nhiều cách biểu diễn khác thoả các điều kiện trên, nhưng xâu S trên có độ dài ngắn nhất. Yêu cầu: Cho một dãy A gồm n số nguyên . Tìm xâu biểu diễn S có độ dài ngắn nhất. Dữ liệu: Vào từ file văn bản LIST.INP: Gồm nhiều Tests: • Dòng đầu tiên chứa số nguyên T - số lượng Tests (1 ≤ T ≤ 10), • Tiếp theo là T nhóm dòng đưa ra thông tin về các Tests, với mỗi nhóm dòng: o Dòng đầu tiên chứa số nguyên n ( 1 ≤ n ≤ 1 000), Trang 2/4 o Dòng thứ 2 chứa n số nguyên, các số không nhất thiết phải khác nhau và có giá trị tuyệt đối không vượt quá 2*10 9 . Hai số liên tiếp trên cùng một dòng được ghi cách bởi ít nhất một dấu cách. Kết quả: Đưa ra luồng output chuẩn, gồm T dòng, mỗi dòng chứa kết quả biểu diễn rút gọn. Dòng thứ i chứa kết quả tương ứng với Tests thứ i (1≤i ≤ T). Ví dụ: LIST.INP Kết quả 2 7 1 3 5 -1 3 4 6 16 1 3 5 -10 3 4 6 2 7 10 9 8 11 13 12 14 -1, 1, 3, , 6 -10, 1, , 14 Bài 4: NHỮNG CHIẾC CỌC Tên chương trình: STICKS.* Để dựng lều cho các đội tuyển tham dự kỳ thi Đồng đội, Ban tổ chức Olimpic Sinh viên mua N cây tre được đánh số từ 1 tới N với độ dài tương ứng là: h 1 , h 2 , , h N. Qua việc đăng ký dự thi của các đội Ban tổ chức nhận thấy để làm đủ cho mỗi đội một lều cần phải có K cọc với độ dài bằng nhau và để tiện cho việc cưa độ dài của cọc là số nguyên. Mỗi chiếc cọc được cắt ra từ một cây nào đó và không được phép nối từ một số đoạn. Để các lều được thoáng mát Ban tổ chức mong muốn độ dài của cọc là lớn nhất. Yêu cầu: Cho N, h 1 , h 2 , , h N và K. Hãy tìm độ dài nguyên d lớn nhất của cọc. Dữ liệu : Vào từ file văn bản STICKS.INP, gồm nhiều Test: • Dòng đầu tiên chứa số nguyên T - số lượng Tests (1 ≤ T ≤10), • Tiếp theo là T nhóm dòng đưa ra thông tin về các Tests, với mỗi nhóm: o Dòng đầu chứa 2 số nguyên dương N và K (1≤N ≤10000, 1 ≤ K ≤ 10000), o Dòng thứ 2 ghi N số nguyên h 1 , h 2 , , h N (0<h i ≤1000000, 1≤i≤N). Hai số liên tiếp trên cùng một dòng được ghi cách bởi ít nhất một dấu cách. Kết quả: Đưa ra luồng output chuẩn, gồm T dòng, dòng thứ i chứa kết quả tương ứng với Tests thứ i (1≤i≤ T). Ví dụ: STICKS.INP Kết quả 1 2 4 130 270 90 Bài 5: ĐIỂM NGUYÊN Tên chương trình: POINTS.* Trên mặt phẳng toạ độ cho một đường gấp khúc khép kín không tự cắt gồm N đỉnh với toạ độ nguyên. Các đỉnh của đường gấp khúc được đánh số liên tiếp từ 1 tới N, trong đó đỉnh thứ i nối với đỉnh thứ i+1 (1≤i≤N-1) còn đỉnh thứ N nối với đỉnh 1. Đỉnh thứ i có toạ độ (x i , y i ). Yêu cầu: Tính số các điểm với toạ độ nguyên nằm trên đường gấp khúc. Dữ liệu : Vào từ file văn bản POINTS.INP, gồm nhiều Tests: • Dòng đầu tiên chứa số nguyên T - số lượng Tests (1 ≤ T ≤ 10), • Tiếp theo là T nhóm dòng đưa ra thông tin về các Tests, với mỗi nhóm dòng: o Dòng đầu chứa số N (3≤N≤10 000), o Dòng thứ i trong N dòng tiếp theo chứa 2 số x i và y i (-1 000 000≤x i , y i ≤1 000 000). Trang 3/4 Hai số liên tiếp trên cùng một dòng được ghi cách nhau bởi một khoảng trắng. Kết quả: Đưa ra luồng output chuẩn, gồm T dòng, dòng thứ i chứa kết quả tương ứng với Tests thứ i (1≤i≤ T). Ví dụ: POINT.INP Kết quả 1 6 -1 1 2 8 8 8 12 4 10 -2 7 -3 18 Bài 6. PHÂN NHÓM Tên chương trình: HQL.* Trên hành tinh Delta có N quốc gia. Các quốc gia được đánh số từ 1 tới N. Mỗi quốc gia đều còn có một số vấn đề bất đồng với không quá 3 quốc gia khác. Để duy trì sự cân bằng, hoà bình trong hành tinh, người ta thành lập một tổ chức với tên gọi là Hội quốc liên. Sắp tới sẽ diễn ra một kỳ họp Đại hội đồng của tổ chức này. Vì số lượng Quốc gia quá nhiều nên Ban tổ chức Đại hội muốn phân các quốc gia này thành hai nhóm để họp vào hai thời điểm khác nhau sao cho trong mỗi nhóm mỗi quốc gia có không quá 1 quốc gia bất đồng với mình. Yêu cầu: Hãy giúp Ban tổ chức phân các Quốc gia thành hai nhóm thỏa mãn yêu cầu trên. Dữ liệu : Vào từ file văn bản HQL.INP, gồm nhiều Tests: • Dòng đầu tiên chứa số nguyên T - số lượng Tests (1 ≤ T ≤ 10), • Tiếp theo là T nhóm dòng đưa ra thông tin về các Tests, với mỗi nhóm dòng: o Dòng đầu chứa số N là số lượng quốc gia trên hành tinh Delta (1≤N≤8000). o Dòng thứ i trong N dòng tiếp theo chứa các không quá 4 số: số đầu là số lượng các quốc gia có bất đồng với quốc gia thứ i, tiếp theo là chỉ số của các quốc gia đó. Nếu quốc gia thứ i không bất đồng với bất kỳ một quốc gia nào thì dòng thứ i chứa duy nhất một số 0. Kết quả: Ghi ra luồng output chuẩn kết quả của T Tests, với mỗi một nhóm dòng: Số -1 nếu không tồn tại phương án phân thành hai nhóm. Trong trường hợp có phương án phân nhóm hãy ghi ra hai dòng: • Dòng đầu chứa chỉ số các quốc gia trong nhóm thứ nhất. • Dòng thứ 2 chứa chỉ số các quốc gia thuộc nhóm thứ 2. Hai số liên tiếp trên cùng một dòng được ghi cách bởi ít nhất một dấu cách. Ví dụ: HQL.INP Kết quả 1 7 3 2 3 4 3 1 3 6 2 1 2 2 1 5 1 4 1 2 0 1 4 6 7 2 3 5 Trang 4/4 . 10), • Tiếp theo là T nhóm dòng đưa ra thông tin về các Tests, với mỗi nhóm dòng: o Dòng đầu chứa số N là số lượng quốc gia trên hành tinh Delta (1≤N≤8000). o Dòng thứ i trong N dòng tiếp theo chứa. (1 ≤ T ≤ 10), • Tiếp theo là T nhóm dòng đưa ra thông tin về các Tests, trong mỗi nhóm: o Dòng đầu tiên ghi số nguyên dương n (n≤200). o Dòng thứ i trong số n dòng tiếp theo ghi n số nguyên dương. Tests (1 ≤ T ≤ 10), • Tiếp theo là T nhóm dòng đưa ra thông tin về các Tests, với mỗi nhóm dòng: o Dòng đầu chứa số N (3≤N≤10 000), o Dòng thứ i trong N dòng tiếp theo chứa 2 số x i và y i