Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
P18QPROC - QUALIFY ROUND 2018 C - SỐ LỚN NHẤT VÀ NHỎ NHẤT |
Cho N số nguyên dương A[]. Mỗi lần, bạn chọn một tổ hợp gồm K số, như vậy, có tất cả C(K, N) cách chọn. Bài toán đặt ra là hãy tính tổng của sự chênh lệch giữa số lớn nhất và nhỏ nhất trong tổ hợp được chọn của tất cả C(K, N) lần.
Input
Dòng đầu tiên là số nguyên N và K (1 ≤ N ≤ 105, 1 ≤ K ≤ N). Dòng tiếp theo gồm N số nguyên A[i] (0 ≤ A[i] ≤ 109).
Output
In ra đáp án tìm được theo modulo 109+7.
Example
Input: 4 2
10 20 30 40 Output: 100
Giải thích test: Có tất cả 6 khả năng: (10, 20), (20, 30), (30, 40), (10, 30), (20, 40), (10, 40).
Tổng cộng bằng 10+10+10+20+20+30 = 100.
Được gửi lên bởi: | adm |
Ngày: | 2018-05-14 |
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 |