Cã mét sè thµnh phè ®îc nèi víi nhau bëi hÖ thèng c¸c con ®êng cao tèc, mçi con ®êng nèi hai thµnh phè nµo ®ã.[r]
Trang 1Cần thơ
Hội TIN HọC VIệT NAM
OLYMPIC TIN HọC SINH VIêN LầN THứ XII, 2003
Khối thi: Chuyên tin
Thời gian l m b i: 180 phút àm bài: 180 phút àm bài: 180 phút
Ng y thi: 18-4-2003 ày thi: 18-4-2003 Nơi thi: Đại học Cần Thơ
Tên bài Tên file chơng trình Tên file dữ liệu Tên file kết quả
Tam giác TAMGIAC.??? TAMGIAC.INP TAMGIAC.OUT Hình xoắn ốc SPIRAL.??? SPIRAL.INP SPIRAL.OUT
Ba thành phố COUNTRY.??? COUNTRY.INP COUNTRY.OUT
Hãy lập trình giải các bài sau đây:
Bài 1 Tam giác
Trên mặt phẳng cho N điểm có toạ độ nguyên A i (x i , y i ), i = 1,2, , N Mỗi một trong số N điểm đợc tô bởi một trong số K mầu Các mầu đợc đánh số từ 1 đến K Một tam giác với ba đỉnh là ba điểm có cùng mầu trong số N điểm đã cho đợc gọi là tam giác cùng mầu.
Yêu cầu: Tìm số lợng tam giác cân cùng màu.
Dữ liệu: Vào từ file văn bản TAMGIAC.INP:
Dòng đầu tiên chứa hai số nguyên N và K đợc ghi cách nhau bởi dấu cách; (1 < N 1000; 1
K 4););
Dòng thứ i trong số N dòng tiếp theo chứa 3 số x i , y i , c i đợc ghi cách nhau bởi dấu cách,
trong đó (x i , y i ) là toạ độ của điểm A i còn c i là màu của A i (các số x i , y i có trị tuyệt đối không quá 32000)
Kết quả: Ghi ra file văn bản TAMGIAC.OUT số lợng tam giác cân cùng màu.
Ví dụ:
TAMGIAC.INP TAMGIAC.OUT
Minh hoạ
8 2
1 2 2
1 -4); 2 -2 2 1
3 -3 1
3 -1 2 4); -4); 2 -3 -1 1 -1 -1 1
2
Trang 2Bài 2 Hình xoắn ốc
Bằng cách viết liên tiếp các số tự nhiên từ 1 tới N ta nhận đợc một dãy các chữ số Ví dụ với N=18
ta có dãy các chữ số: 1234);567891011121314);15161718 Sau đó điền dãy chữ số này vào các điểm nguyên của mặt phẳng toạ độ theo chiều xoắn ốc bắt đầu từ điểm (0,0) nh sơ đồ sau:
Nh vậy với một số N cho trớc một số điểm nguyên của mặt phẳng toạ độ có chứa một chữ số.
Yêu cầu: Cho hai số nguyên x và y, hãy:
a Tìm số tự nhiên N lớn nhất sao cho điểm (x,y) cha có chữ số.
b Giả sử điểm (x,y) đã có chữ số Hãy tìm chữ số K đợc điền tại điểm (x,y)
Dữ liệu: Vào từ file văn bản SPIRAL.INP gồm một dòng chứa 3 số nguyên q, x và y, trong đó q = 1
nếu là yêu cầu a) và q = 2 nếu là yêu cầu b), còn x và y có giá trị tuyệt đối không vợt quá 20000.
Kết quả: Ghi ra file văn bản SPIRAL.OUT:
Nếu q=1 hãy ghi ra số N (kết quả câu a), còn nếu q = 2 hãy ghi ra chữ số K (kết quả câu b).
Ví dụ:
SPIRAL.INP SPIRAL.OUT
SPIRAL.INP SPIRAL.OUT
Bài 3 Ba thành phố
Trong một đất nớc có N thành phố đợc đánh số từ 1 đến N Có một số thành phố đợc nối với nhau
bởi hệ thống các con đờng cao tốc, mỗi con đờng nối hai thành phố nào đó Hệ thống đờng cao tốc này có tính chất sau: Đối với hai thành phố bất kỳ A và B, nếu có cách di chuyển từ thành phố A đến thành phố B theo các con đờng của hệ thống thì có đúng một cách di chuyển mà trong đó không có con đờng nào bị đi qua quá một lần
Trang 3Tổng thống của đất nớc này đặt ra câu hỏi sau đây đối với các nhà Tin học: Ba thành phố nào là cách
xa nhau nhất Chính xác hơn, ta gọi độ giãn cách giữa ba thành phố A, B và C là tổng số con đờng
cần sử dụng để di chuyển từ A đến B, tiếp đến di chuyển từ B đến C và cuối cùng di chuyển từ C đến
A tuân thủ điều kiện: trong mỗi di chuyển vừa nêu, mỗi con đờng chỉ đợc đi qua không quá một lần
Yêu cầu: Tìm ba thành phố mà độ giãn cách giữa chúng là lớn nhất.
Ví dụ: Đối với 5 thành phố với các con đờng nối chúng đợc cho trong hình 1, ba thành phố với độ giãn cách lớn nhất là 1, 2 và 5 (độ giãn cách là 2+3+3 = 8) Đối với 5 thành phố với các con đờng nối chúng đợc cho trong hình 2, ba thành phố với độ giãn cách lớn nhất là ba thành phố bất kỳ trong tập 4); thành phố {1, 2, 4);, 5} (độ giãn cách là 2+2+2 = 6)
3
4 5
3
Dữ liệu: Vào từ file văn bản COUNTRY.INP:
Dòng đầu tiên chứa số nguyên N (3 ≤ N ≤ 1000)
Tiếp theo là N dòng mô tả thông tin về các thành phố Dòng thứ i chứa các số: K i là số lợng
thành phố có con đờng nối với thành phố i (1 ≤ K i < N), sau đó là K i số nguyên là các chỉ số của các thành phố này
Dữ liệu đảm bảo là có con đờng nối A với B thì cũng có con đờng nối B với A, đồng thời đối với mọi cặp thành phố đều thực hiện điều kiện đã nêu
Kết quả: Ghi ra file văn bản COUNTRY.OUT một số nguyên là độ giãn cách giữa ba thành phố tìm
đợc
Ví dụ:
COUNTRY.INP COUNTRY.OUT
5
1 3
1 3
3 1 2 4
2 3 5
1 4
8
y