Submission details
Task:Kortit II
Sender:viiviP
Submission time:2025-07-03 19:27:27 +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.23 s2, 3, 4, 5details
#3--3, 4, 5details
#4--4, 5details
#5--5details
#6--5details

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 << "\n";
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() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
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 << "\n";
}
} while (next_permutation(luvut.begin(), luvut.end()));
//cout << "vastaus " << c << "\n";
cout << c % mod << "\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)