CSES - Datatähti 2025 alku - Results
Submission details
Task:Kortit II
Sender:AH
Submission time:2024-10-30 20:54:53 +0200
Language:C++ (C++20)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
#40
#50
Test results
testverdicttimegroup
#10.00 s1, 2, 3, 4, 5details
#20.00 s2, 3, 4, 5details
#30.00 s3, 4, 5details
#40.00 s4, 5details
#50.00 s5details
#60.00 s5details

Code

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef vector<int> vi;

#define F first
#define S second
#define PB push_back
#define MP make_pair
#define FOR(i,a,b) for (ll i = a; i < b; i++)

ll mod=1e9+7;
vector<vector<ll>> v = {
        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 21, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 51, 161, 51, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 113, 813, 813, 113, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 239, 3361, 7631, 3361, 239, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 493, 12421, 53833, 53833, 12421, 493, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 1003, 42865, 320107, 607009, 320107, 42865, 1003, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 2025, 141549, 1704693, 5494017, 5494017, 1704693, 141549, 2025, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 4071, 453905, 8422679, 42924113, 72605303, 42924113, 8422679, 453905, 4071, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 8165, 1426725, 39474449, 302458313, 802028813, 802028813, 302458313, 39474449, 1426725, 8165, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 16355, 4422913, 178065811, 977056426, 789852802, 172272237, 789852802, 977056426, 178065811, 4422913, 16355, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 32737, 13579309, 780889437, 218582477, 767040909, 753131331, 753131331, 767040909, 218582477, 780889437, 13579309, 32737, 1, 0, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 65503, 41408833, 352853130, 353683273, 443916467, 23079360, 634184753, 23079360, 443916467, 353683273, 352853130, 41408833, 65503, 1, 0, 0, 0, 0, 0, 0, 0},
        {0, 1, 131037, 125667333, 166996279, 496884791, 51334367, 873374622, 331293441, 331293441, 873374622, 51334367, 496884791, 166996279, 125667333, 131037, 1, 0, 0, 0, 0, 0, 0},
        {0, 1, 262107, 380081105, 131277918, 653878722, 283239251, 224880232, 776442791, 744422627, 776442791, 224880232, 283239251, 653878722, 131277918, 380081105, 262107, 1, 0, 0, 0, 0, 0},
        {0, 1, 524249, 146795686, 488340185, 113217428, 143784997, 897051207, 405967908, 427513351, 427513351, 405967908, 897051207, 143784997, 113217428, 488340185, 146795686, 524249, 1, 0, 0, 0, 0},
        {0, 1, 1048535, 454279324, 523632634, 385470287, 871449594, 530109088, 285082030, 65680015, 694296779, 65680015, 285082030, 530109088, 871449594, 385470287, 523632634, 454279324, 1048535, 1, 0, 0, 0},
        {0, 1, 2097109, 392196575, 753192680, 72277139, 275100338, 786757746, 113098335, 131462571, 215714863, 215714863, 131462571, 113098335, 786757746, 275100338, 72277139, 753192680, 392196575, 2097109, 1, 0, 0}};

ll fac(ll n) {
    ll f=1;
    FOR(i,1,n+1) {
        f = (f*i)%mod;
    }
    return f;
}

ll bin(ll n, ll k) {
    ll bin = fac(n)/(fac(k)*fac(n-k));
    return bin;
}

void f() {
    ll n, a, b, t, tm, jm, vm, r;
    cin >> n >> a >> b;
    t = n-a-b;
    if (t<0) {
        cout << 0 << "\n";
        return;
    }
    tm = bin(n, t);
    jm = fac(n);
    vm = v[n-t][a];
    r=(tm*jm*vm)%(mod);
    cout << r << "\n";
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    FOR(i,0,t) {
        f();
    }
}

Test details

Test 1

Group: 1, 2, 3, 4, 5

Verdict:

input
54
4 4 0
3 1 3
3 2 2
4 0 4
...

correct output
0
0
0
0
0
...

user output
0
0
0
0
0
...

Test 2

Group: 2, 3, 4, 5

Verdict:

input
284
6 1 0
5 0 2
7 1 5
7 7 5
...

correct output
0
0
35280
0
36720
...

user output
0
0
35280
0
36720
...

Test 3

Group: 3, 4, 5

Verdict:

input
841
19 3 12
19 19 13
19 7 13
20 11 15
...

correct output
40291066
0
0
0
0
...

user output
0
0
0
0
0
...

Test 4

Group: 4, 5

Verdict:

input
1000
15 12 6
7 1 6
44 4 26
6 6 5
...

correct output
0
5040
494558320
0
340694548
...

user output
(empty)

Test 5

Group: 5

Verdict:

input
1000
892 638 599
966 429 655
1353 576 1140
1403 381 910
...

correct output
0
0
0
249098285
0
...

user output
(empty)

Test 6

Group: 5

Verdict:

input
1000
2000 1107 508
2000 1372 249
2000 588 65
2000 1739 78
...

correct output
750840601
678722180
744501884
159164549
868115056
...

user output
(empty)