Cho A, B, C, hãy xác định số lượng đồng xu nhiều nhất có thể sử dụng đề thanh toán chính xác số tiền C đồng hoặc chỉ ra rằng không có cách thanh toán chỉ sử dụng hai loại đồng xu mệnh gi[r]
(1)SỞ GD&ĐT VĨNH PHÚC ĐỀ CHÍNH THỨC KỲ THI CHỌN HSG LỚP CẤP TÍNH NĂM HỌC 2012-2013 ĐỀ THI MÔN: TIN HỌC Thời gian làm bài: 150 phút, không kể thời gian giao đề (Đề thi có 02 trang ) Tổng quan đề thi Tên bài Tiền xu Bậc đối xứng Dãy Chương trình COINS.PAS PALINDEG.PAS CONLFICH.PAS Dữ liệu COINS.INP PALINDEG.INP CONLFICH.INP Kết Giới hạn Điểm COINS.OUT 1s/test 40 PALINDEG.OUT 1s/test 40 CONLFICH.OUT 1s/test 20 Lập chương trình giải các bài toán sau: Bài TIỀN XU Bờm có nhiều đồng tiền xu, chúng có hai mệnh giá: A đồng B đồng Việc bảo quản tiền xu phiền phức, vì vậy, Bờm muốn tiêu hết chúng thật nhanh Cụ thể hơn, mua món hàng giá trị C đồng, Bờm muốn toán tiền xu và sử dụng cách dùng nhiều đồng xu Chẳng hạn, Nếu bờm có hai loại tiền xu mệnh giá đồng và đồng, phải toán lượng tiền 32 đồng, Bờm có hai cách trả: Cách thứ sử dụng xu mệnh giá đồng và xu mệnh giá đồng, cách còn lại sử dụng xu mệnh giá đồng và xu mệnh giá đồng Cách thức Bờm lựa chọn vì giúp bờm tiêu nhiều đồng xu Cho A, B, C, hãy xác định số lượng đồng xu nhiều có thể sử dụng đề toán chính xác số tiền C đồng không có cách toán sử dụng hai loại đồng xu mệnh giá A, B Dữ liệu (COINS.INP) Dòng 1: ba số nguyên A, B, C (1 ≤ A, B ≤ 5000; ≤ C ≤ 106) Kết (COINS.OUT) Dòng 1: số nguyên là tổng số đồng xu nhiều có thể sử dụng để toán, số này -1 không có cách toán Ví dụ: COINS.INP COINS.OUT 10 32 Bài BẬC ĐỐI XỨNG Xâu đối xứng là xâu đọc từ trái qua phải giống đọc từ phải qua trái, chẳng hạn các xâu ‘abba’, ‘madam’ là các xâu đối xứng Người ta định nghĩa bậc đối xứng xâu S, kí hiệu deg(S), sau: Nếu S không phải là xâu đối xứng S có độ dài thì bậc đối xứng S (viết là: deg(S)=0) Nếu xâu S là xâu đối xứng có độ dài lớn 1, giả sử S=S 1S2…SN (N > 1), thì bậc đối xứng S tính theo công thức: deg(S)= 1+ deg(T), đó xâu T là nửa trái S theo nghĩa: T = S1S2…Sk với k = (N + 1) div (2) Chẳng hạn: deg(‘x’) = vì ‘x’ có độ dài deg(‘x0’) = vì ‘x0’ không đối xứng deg(‘x0x’) = vì deg(‘xox’) = + deg(‘xo’) deg(‘xoxxox’) =2 vì deg(‘xoxxox’)=1+deg(‘xox’) Cho xâu S độ dài không vượt quá 200 gồm các chữ cái latin thường, hãy xác định bậc đối xứng S Dữ liệu (PALINDEG.INP) Dòng 1: xâu S Kết (PALINDEG.OUT) Dòng 1: số nguyên là bậc đối xứng xâu S Ví dụ PALINDEG.INP bobobbobob PALINDEG.OUT Bài DÃY CON Cho dãy N số nguyên A= (a1, a2, …, aN) và số nguyên dương M Hãy tìm cách xóa bỏ dãy A số phần tử cho dãy thu có nhiều phần tử đồng thời dãy này không có phần tử nào có tổng chia hết cho M Chẳng hạn, với N = 5, M = 3, A = (1, 2, 3, 4, 5), dãy dài thu có độ dài 3, có dãy vậy, đó là (1, 2, 3); (1, 3, 4); (2, 3, 5); (3, 4, 5) Dữ liệu (CONFLICT.INP) Dòng 1: hai số nguyên N, M (1 ≤ N ≤ 105; ≤ M ≤ 105) Dòng 2: N số nguyên a1, a2, …., aN (|ai| ≤ 109 ∀ i = N) Kết (CONFLICT.OUT) Dòng 1: số nguyên K là số phần tử dãy thu Dòng 2: K số nguyên là số dãy ban đầu các phần tử dãy thu được, các số đưa theo trật tự tăng Nếu có nhiều cách xóa cho dãy độ dài K thỏa mãn yêu cầu bài toán thì cần đưa cách Ví dụ CONFLICT.INP 32 100 10 CONFLICT.OUT 12 - HẾT Cán coi thi không giải thích gì thêm Họ và tên thí sinh: Số báo danh: (3)