Mã số

Xem PDF

Điểm: 300 (p) Thời gian: 5.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Đất nước C11 (láng giềng của đất nước B11) sắp tiến hành cấp \(N\) mã số khác nhau cho \(N\) người dân để tiện việc quản lí. Để việc cấp mã số mang tính dân chủ, mỗi người dân được quyền chọn một số \(max\) và chính quyền sẽ cấp cho người đó một mã số là một số tự nhiên có giá trị từ 1 đến \(max\).

Nhiệm vụ của bạn là đếm xem có bao nhiêu cách cấp mã số khác nhau cho \(N\) người này.

Input

  • Dòng 1: Số nguyên dương \(N\).
  • Dòng \(i\) trong \(N\) dòng tiếp theo: Số nguyên dương \(max_i\).

Output

  • Phần dư khi chia số cách cấp mã số khác nhau cho \(k\). Với \(k\) là số nguyên tố nhỏ nhất lớn hơn \(10^9\).

Constants

  • \(1 ≤ N ≤ 10^5\).
  • \(1 ≤ max_i ≤ 10^9\).

Example

Test 1

Input
2
1
3
Output
2

Test 2

Input
4
4
4
4
4 
Output
24 
Note
  • Ví dụ 1: Có 2 cách cấp mã số là \({1, 2}\) hoặc \({1, 3}\).
  • Ví dụ 2: Số cách cấp mã số là số hoán vị của tập \((1, 2, 3, 4)\).

Bình luận

  • hoanglam14112013_2 8:50 p.m. 25 Tháng 2, 2025

    include<bits/stdc++.h>

    using namespace std;

    const int maxn = 1e5 + 5;
    const int mod = 1e9 + 7;
    long long n;
    long long a[maxn];

    int main()
    {
    cin >> n;
    for(int i = 1; i <= n; i++) cin >> a[i];

    long long res = 1;
    sort(a + 1, a + n + 1);
    
    for(int i = 1; i <= n; i++)
    {
        res = res * (a[i] - i + 1);  
        res = res % mod; 
    }
    
    cout << res;
    return 0;
    

    }

    • minhtuanitk20 10:49 p.m. 13 Tháng 1, 2022

      10^9 ----- 10^9+7

      • todonghai2k7 9:48 a.m. 29 Tháng 8, 2020

        Số nguyên tố nhỏ nhất và lớn hơn \(10^9\)\(10^9 + 7\)