Submission

Status:
PPPPPPPPPP

Score: 100

User: Dormon

Problemset: H.Weird Ping-pong

Language: cpp

Time: 0.159 second

Submitted On: 2024-12-03 10:42:27

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
using ll = long long;
const ll mod = 1e9+7;

int main() {
    int n; scanf("%d", &n);
    vector<ll> a(n);
    for (int i = 0;i < n;i++) scanf("%lld", &a[i]); sort(a.begin(), a.end());
    ll ans = 1;
    for (int i = 0;i < n;i++){
        if (a[i] - i <= 0) {
            printf("0");
            return 0;
        }
        ans = ans*(a[i] - i)%mod;
    }

    printf("%lld", ans);
    return 0;
}