Submission details
Task:Kortit II
Sender:viiviP
Submission time:2025-07-03 19:14:11 +0300
Language:C++ (C++17)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
#40
#50
Test results
testverdicttimegroup
#10.00 s1, 2, 3, 4, 5details
#20.24 s2, 3, 4, 5details
#3--3, 4, 5details
#4--4, 5details
#5--5details
#6--5details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:49:15: warning: unused variable 'mod' [-Wunused-variable]
   49 |     long long mod = pow(10, 9) +7;
      |               ^~~

Code

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

tuple<int,int,int> isOk(int n, vector<int> m) {
    int a = 0;
    int b = 0;
    int t = 0;
    for (int i = 1; i<=n;i++)  {
        if (m[i] == i) {
            t++;
        } else if (m[i] < i) { // m = b pelaaja
            a++;
        } else if (m[i] > i) {
            b++; 
        }
    }
    //cout << "a, b, t: " << a << b << t << endl;
    return make_tuple(a, b, t);
}

int kertoma(int n) {
    int k = 1;
    for (int i =1;i<=n; i++) {
        k *= i;
    }
    return k;
}
int main() {
    int t;
    cin >> t;

    vector <vector<int>> p(t); //pelit

    for (int i = 0;i<t;i++) { // testien luku
        int n;
        int a;
        int b;

        cin >> n >> a >> b;
        p[i].push_back(n);
        p[i].push_back(a);
        p[i].push_back(b);
    }
   

    long long mod = pow(10, 9) +7;

    for (int i = 0; i<t; i++) { //joka peli
        //cout << "\nuusi peli\n";
        int c = 0;
        int k = kertoma(p[i][0]);

        vector<int> luvut(p[i][0]);

        for (int x = 1; x<=p[i][0];x++) {
            luvut[x-1] = x;
        }
        do {


            tuple<int ,int ,int> v = isOk(p[i][0], luvut);
            if (get<0>(v) == p[i][1] && get<1>(v) == p[i][2] && get<2>(v) == (p[i][0] - p[i][1] - p[i][2])) {
                c+= k;
                //cout << "hyva permutaatio\n";
                //cout << "permutaatio: " << endl;

                //for (int y = 0; y<p[i][0]; y++) {
                //  cout << luvut[y] << " ";
                //} 
                //cout << endl;
            } 
            
        } while (next_permutation(luvut.begin(), luvut.end()));
        //cout << "vastaus " << c << "\n";
        cout << c << "\n";
    }
}

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
30240
0
131040
...

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
(empty)

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)