50212023-04-09 22:02:33zsomborMisztikus táblázatcpp17Hibás válasz 15/1001.08s37452 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()
{
    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
1Elfogadva13ms34520 KiB
2Elfogadva16ms34792 KiB
3Hibás válasz389ms35000 KiB
subtask20/5
4Elfogadva998ms35212 KiB
5Időlimit túllépés1.05s35424 KiB
6Időlimit túllépés1.072s18316 KiB
7Időlimit túllépés1.077s18440 KiB
subtask30/9
8Elfogadva13ms35844 KiB
9Elfogadva17ms35800 KiB
10Időlimit túllépés1.052s19012 KiB
11Időlimit túllépés1.044s18988 KiB
subtask415/15
12Elfogadva13ms36108 KiB
13Elfogadva13ms36020 KiB
14Elfogadva13ms36308 KiB
15Elfogadva16ms36192 KiB
16Elfogadva14ms36172 KiB
17Elfogadva16ms36188 KiB
18Elfogadva14ms36276 KiB
19Elfogadva16ms36504 KiB
subtask50/16
20Elfogadva14ms36460 KiB
21Elfogadva16ms36736 KiB
22Időlimit túllépés1.069s36692 KiB
23Hibás válasz59ms36944 KiB
24Hibás válasz405ms36948 KiB
subtask60/25
25Hibás válasz21ms36948 KiB
26Elfogadva23ms36888 KiB
27Elfogadva26ms37144 KiB
28Hibás válasz14ms37096 KiB
29Hibás válasz18ms37092 KiB
30Hibás válasz20ms37120 KiB
31Hibás válasz17ms37092 KiB
32Hibás válasz17ms37352 KiB
subtask70/30
33Hibás válasz148ms37304 KiB
34Elfogadva127ms37304 KiB
35Időlimit túllépés1.08s20268 KiB
36Hibás válasz61ms37308 KiB
37Hibás válasz347ms37304 KiB
38Hibás válasz741ms37308 KiB
39Hibás válasz560ms37452 KiB
40Hibás válasz101ms37352 KiB
41Hibás válasz435ms37356 KiB
42Hibás válasz778ms37348 KiB