CONNECT - Kết nối máy tính

View as PDF

Submit solution

Points: 100.00
Time limit: 1.0s
Memory limit: 1000M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Trên trục tọa độ ~Ox~, có ~N~ máy tính và ~N~ ổ cắm điện. Máy tính thứ ~i~ có tọa độ là ~A_i~, ổ cắm điện thứ ~i~ có tọa độ ~B_i~. ~2N~ điểm này có tọa độ đôi một khác nhau.

Người ta muốn tìm cách kết nối từng máy tính với một ổ cắm điện, sử dụng một sợi dây. Nếu nối máy tính ~i~ với ổ cắm ~j~ thì độ dài sơi dây cần dùng là ~|A_i −B_j|~. Mỗi ổ cắm điện chỉ được nối với một máy tính.

Hãy đếm xem có bao nhiêu cách kết nối máy tính với ổ cắm sao cho tổng độ dài dây cần dùng là ít nhất có thể. Vì đáp án có thể rất lớn nên hãy in số cách sau khi chia lấy dư cho ~10^9 +7~.

Dữ liệu
  • Dòng đầu tiên gồm số nguyên ~N~ ~(1 ≤ N ≤ 10^5)~ - số máy tính và ổ cắm điện.
  • Dòng thứ hai gồm ~N~ số nguyên ~A_1,A_2,...,A_N~ ~(0 ≤ A_i ≤ 10^9)~ - tọa độ của ~N~ máy tính.
  • Dòng thứ ba gồm ~N~ số nguyên ~B_1,B_2,...,B_N~ ~(0≤B_i ≤10^9)~ - tọa độ của ~N~ ổ cắm.
Kết quả
  • In ra số cách nối sau khi chia lấy dư cho ~10^9 +7~.
Ví dụ
Sample Input 1
2
50 60 
70 80
Sample Output 1
2
Sample Input 2
3
50 30 10
20 60 40
Sample Output 2
1
Giải thích
  • Trong ví dụ thứ nhất, có hai cách nối với tổng chi phí nhỏ nhất (40):

~\qquad~– 50−70, 60−80.

~\qquad~– 50−80, 60−70.

  • Trong ví dụ thứ hai, cách nối duy nhất với tổng chi phí nhỏ nhất (30) là: 50−60, 30−40, 10−20.
Chấm điểm
  • Subtask 1 (30% số điểm): ~N ≤ 10~
  • Subtask 2 (20% số điểm): ~N ≤ 20~
  • Subtask 3 (50% số điểm): Không có ràng buộc gì thêm

Nguồn: Free Contest


Comments

Please read the guidelines before commenting.


There are no comments at the moment.