Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P191PROD - Problem D - Chuyện du lịch |
Kuro là một con người thích đi du lịch. Anh ta thường lang thang khắp nơi, khám phá những miền đất mới lạ.
Một lần, Kuro tới một quốc gia, và khám phá ra một điểm du lịch đặc biệt: một con đường thẳng với n tòa nhà kính sặc sỡ. Tưởng tượng rằng, Kuro xuất phát ở kilometer thứ 0; thì các tòa nhà kính lần lượt nằm ở kilometer thứ a_1, a_2, ..., a_n. Không có hai tòa nhà kính nào nằm ở cùng tọa độ.
Kuro ngồi vẽ ra kế hoạch tham quan của mình: anh sẽ xuất phát từ kilometer thứ 0, đi tham quan mỗi tòa nhà kính đúng 1 lần theo thứ tự tùy ý, và sẽ dừng lại sau khi thăm xong tòa nhà kính cuối cùng.
Để đi từ kilometer thứ x tới kilometer thứ y, Kuro cần đi quãng đường dài |x - y| km.
Kuro khá thích tính toán, nên anh định viết ra tất cả các kế hoạch có thể có để tính độ dài trung bình cho chuyến tham quan của anh. Nhưng số lượng nhà kính là quá nhiều, khiến anh ta phát ngán; các bạn có thể giúp anh ấy được không?
Input
- Dòng đầu tiên chứa 1 số nguyên n (2 <= n <= 10^5) – số tòa nhà kính.
- Dòng thứ hai gồm n số nguyên phân biệt a_1, a_2, ..., a_n (1 <= a_i <= 10^7).
Output
Tính toán độ dài trung bình cho chuyến tham quan của Kuro.
Dễ dàng nhận thấy, độ dài này có thể viết dưới dạng phân số tối giản A/B (A, B là các số nguyên, B > 0, gcd(A, B) = 1).
In ra trên một dòng duy nhất 2 số nguyên A và B, cách nhau bởi khoảng trắng.
Example
Input: 3 2 3 5 Output: 22 3
Giải thích: Có 6 kế hoạch có thể có cho chuyến đi:
- [2, 3, 5]: Tổng độ dài sẽ là: |2 - 0| + |3 - 2| + |5 - 3| = 5;
- [2, 5, 3]: |2 – 0| + |5 – 2| + |3 – 5| = 7;
- [3, 2, 5]: |3 – 0| + |2 – 3| + |5 – 2| = 7;
- [3, 5, 2]: |3 – 0| + |5 – 3| + |2 – 5| = 8;
- [5, 2, 3]: |5 – 0| + |2 – 5| + |3 – 2| = 9;
- [5, 3, 2]: |5 – 0| + |3 – 5| + |2 – 3| = 8.
Như vậy, độ dài trung bình sẽ là: (5+7+7+8+9+8) / 6 = 44 / 6 = 22 / 3.
Được gửi lên bởi: | adm |
Ngày: | 2019-02-15 |
Thời gian chạy: | 1s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | ASM32-GCC ASM32 ASM64 MAWK BC C CSHARP C++ 4.3.2 CPP CPP14 COFFEE LISP sbcl DART FORTH GO JAVA JS-RHINO JS-MONKEY KTLN OCT PAS-GPC PAS-FPC PERL PERL6 PROLOG PYTHON PYTHON3 PY_NBC R RACKET SQLITE SWIFT UNLAMBDA |