50222023-04-09 22:04:26zsomborMisztikus táblázatcpp17Hibás válasz 29/100449ms37924 KiB
#include <iostream>
#include <vector>
using namespace std;
using ll = long long;

ll n, s, o, a, MOD = 1e9 + 7, ans = 1;
vector <vector <int>> dp(2001, vector <int>(2001, 0));
vector <vector <bool>> b(2001, vector <bool>(2001, false));

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> n >> s >> o;
    dp[0][0] = 1;
    for (int i = 1; i <= n; i++) {
        dp[i][0] = (dp[i - 1][0] * i) % MOD;
        for (int j = 1; j <= i; j++) {
            dp[i][j] = (MOD + dp[i][j - 1] - dp[i - 1][j - 1]) % MOD;
        }
    }
    fill(b[0].begin(), b[0].end(), true);
    for (int i = 1; i <= s; i++) {
        for (int j = 0; j < o; j++) {
            cin >> a;
            b[i][a] = true;
        }
        a = 0;
        for (int j = 1; j <= n; j++) if (!b[i][j] && !b[i - 1][j]) a++;
        ans *= dp[n - o][a];
        ans %= MOD;
    }
    for (int i = 0; i < n - s; i++) {
        ans *= dp[n][n];
        ans %= MOD;
    }
    cout << ans;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva16ms34540 KiB
2Elfogadva13ms34792 KiB
3Hibás válasz202ms34940 KiB
subtask25/5
4Elfogadva405ms35152 KiB
5Elfogadva425ms35368 KiB
6Elfogadva449ms35448 KiB
7Elfogadva437ms35712 KiB
subtask39/9
8Elfogadva13ms35800 KiB
9Elfogadva16ms35780 KiB
10Elfogadva428ms35780 KiB
11Elfogadva441ms36036 KiB
subtask415/15
12Elfogadva16ms35992 KiB
13Elfogadva16ms35992 KiB
14Elfogadva13ms36252 KiB
15Elfogadva16ms36464 KiB
16Elfogadva16ms36460 KiB
17Elfogadva13ms36680 KiB
18Elfogadva13ms36636 KiB
19Elfogadva13ms36624 KiB
subtask50/16
20Elfogadva16ms36628 KiB
21Elfogadva14ms36884 KiB
22Elfogadva441ms37152 KiB
23Hibás válasz56ms37052 KiB
24Hibás válasz182ms37316 KiB
subtask60/25
25Hibás válasz19ms37304 KiB
26Elfogadva16ms37440 KiB
27Elfogadva19ms37368 KiB
28Hibás válasz13ms37368 KiB
29Hibás válasz14ms37368 KiB
30Hibás válasz18ms37376 KiB
31Hibás válasz18ms37372 KiB
32Hibás válasz18ms37524 KiB
subtask70/30
33Hibás válasz89ms37572 KiB
34Elfogadva81ms37440 KiB
35Elfogadva441ms37568 KiB
36Hibás válasz64ms37708 KiB
37Hibás válasz186ms37592 KiB
38Hibás válasz321ms37544 KiB
39Hibás válasz264ms37676 KiB
40Hibás válasz85ms37552 KiB
41Hibás válasz221ms37676 KiB
42Hibás válasz340ms37924 KiB