Bài 1Cho N điểm trong mặt phẳng tọa độ Ai = xi, yi.. Các số viết cách nhau một dấu cách Dữ liệu ra: Ghi ra file văn bản DISTANCE.OUT - Gồm 1 số nguyên duy nhất là kết quả bài toán... Các
Trang 1Bài 16
VÍ DỤ VỀ LÀM VIỆC VỚI TỆP
(2 tiết)
Trang 2Bài 1
Cho N điểm trong mặt phẳng tọa độ Ai = (xi, yi) Khoảng cách Manhattan giữa hai điểm A và B có giá trị D = |xA – xB| + |yA – yB|
Yêu cầu: Tính khoảng cách Manhattan lớn nhất giữa các cặp điểm đã cho
Dữ liệu vào: Từ file văn bản DISTANCE.INP:
- Dòng 1: ghi số nguyên dương n (2 ≤ n ≤ 105)
- Dòng 2 N + 1: mỗi dòng 2 số nguyên thể hiện tọa độ của điểm (|xi|, |yi| ≤ 109) Các số viết cách nhau một dấu cách
Dữ liệu ra: Ghi ra file văn bản DISTANCE.OUT
- Gồm 1 số nguyên duy nhất là kết quả bài toán
Trang 5Bài 2
Xét dãy số nguyên dương khác nhau từng đôi một: a1, a2, …an, trong đó 1 ≤ ai ≤ 106, 1 ≤ n ≤ 105) Với số nguyên x cho trước (1 ≤ x ≤ 200000) Hãy xác định số cặp (ai, aj) thỏa mãn các điều kiện:
+ ai + aj = x
+ 1 ≤ i ≤ j ≤ n
Dữ liệu vào: Từ file văn bản SUMX.INP gồm:
Dòng 1: chứa số nguyên dương n
Dòng 2: chứa n số nguyên a1, a2, …an Các số cách nhau bởi dấu cách
Dòng 3 chứa số nguyên x
Dữ liệu ra: Ghi ra file văn bản SUMX.OUT một số nguyên – số cặp tìm được
Trang 8Bài 3
Cho N (N <= 10000) đoạn thẳng trên trục số với các điểm đầu xi và độ dài di (|xi|, di là những số nguyên không vượt quá 109) Tính tổng độ dài trên trục số bị phủ bởi N đoạn trên
Ví dụ: có 3 đoạn x1 = -5, d1= 10; x2 = 0, d2 = 6; x3 = -100, d3 = 10 thì tổng độ dài trên trục số bị phủ bởi
3 đoạn trên là 21
Dữ liệu vào: Từ file văn bản SEG.INP gồm:
Dòng 1: chứa số nguyên n (n ≤ 10000)
Dòng thứ i trong n dòng sau chứa 2 số nguyên xi, di Các số cách nhau bởi dấu cách
Dữ liệu ra: Ghi ra file văn bản SEG.OUT là tổng độ dài trên trục số bị phủ bởi n đoạn trên
Trang 9SEG.inp SEG.out
3
-5 10
0 6
-100 10
21
6
-5 10
0 6
-100 10
5 20
30 10
35 20
65
7
-5 10
0 6
-100 10
5 20
30 10
35 20
45 5
65
Trang 10Gợi ý: (hãy vẽ trục số để làm cho dễ)
- Sắp xếp dãy theo chiều tăng dần của xi
- Tính tổng s các di
- Xét các khả năng:
+ Nếu xi+1 >= xi+di thì chuyển (ko làm gì cả vẫn giữ nguyên s) + Nếu xi+1 < xi+di <=xi+1 + di+1 thì s = s-(xi+di - xi+1)
+ Nếu xi+di > xi+1 + di+1 thì s = s-di+1