// 想定解 #include #include #include #include using namespace std; int main() { int N; cin >> N; assert(1 <= N and N <= 20); long long ret = 1; for (int i = 1; i <= N; ++i) ret *= i; map counter; vector A(N); for (int i = 0; i < N; ++i) { cin >> A[i]; assert(1 <= A[i] and A[i] <= N); counter[A[i]]++; } for (auto [a, num_a] : counter) { for (int i = 1; i <= num_a; ++i) ret /= i; } cout << ret << '\n'; }