CSES - Putka Open 2015 – 1/6 - Results
Submission details
Task:Lähetit
Sender:Henrik Lievonen
Submission time:2015-07-19 22:05:14 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.08 s1details
#20.09 s1details
#30.09 s1details
#40.09 s1details
#50.07 s1details
#60.09 s2details
#70.13 s2details
#80.24 s2details
#90.32 s2details
#100.43 s2details
#11--3details
#12--3details
#13--3details
#14--3details
#15--3details

Code

#include <iostream>
#include <bitset>
using namespace std;
typedef long long int ll;
template<ll N>
struct modnum {
ll num;
modnum(ll n) :num(n%N) {}
modnum &operator+=(const modnum<N> &o) {
num = (num + o.num) % N;
return *this;
}
modnum &operator*=(const modnum<N> &o) {
num = (num*o.num) % N;
return *this;
}
modnum operator*(const modnum<N> &o) const {
modnum<N> a = *this;
a *= o;
return a;
}
operator ll() const {
return num;
}
};
typedef modnum<1000000007> num;
//typedef ll num;
typedef bitset<100> BS;
num testlayer(int n, int k, int l, BS b) {
if (k <= 0) {
return 1;
}
if (l >= n) {
return 0;
}
num r = testlayer(n, k, l + 1, b);
for (int i = 0; i <
l / 2 * 2
+ (n + 1) % 2
+1;
i++) {
if (!b.test(i)) {
b.set(i);
r += testlayer(n, k - 1, l + 1, b);
b.reset(i);
}
}
return r;
}
num testdiag(int n, int k) {
BS b;
return testlayer(n, k, 0, b);
}
num test(int n, int k) {
num r = 0;
for (int i = 0; i <= k; i++) {
r += testdiag(n, i)*testdiag(n-1, k - i);
}
return r;
}
int main() {
for (int y = 0; y < 10; y++) {
for (int x = 1; x < 10; x++) {
cout << testdiag(x, y) << "\t";
}
cout << "\n";
}
int n, k;
cin >> n >> k;
cout << test(n, k);
}

Test details

Test 1

Group: 1

Verdict:

input
5 2

correct output
240

user output
1 1 1 1 1 1 1 1 1
1 4 5 12 13 24 25 40 41
0 2 4 38 46 188 206 580 612
0 0 0 32 46 576 674 3840 4196
0 0 0 4 8 652 836 12052 13756
...

Test 2

Group: 1

Verdict:

input
5 4

correct output
2728

user output
1 1 1 1 1 1 1 1 1
1 4 5 12 13 24 25 40 41
0 2 4 38 46 188 206 580 612
0 0 0 32 46 576 674 3840 4196
0 0 0 4 8 652 836 12052 13756
...

Test 3

Group: 1

Verdict:

input
5 6

correct output
1960

user output
1 1 1 1 1 1 1 1 1
1 4 5 12 13 24 25 40 41
0 2 4 38 46 188 206 580 612
0 0 0 32 46 576 674 3840 4196
0 0 0 4 8 652 836 12052 13756
...

Test 4

Group: 1

Verdict:

input
5 8

correct output
32

user output
1 1 1 1 1 1 1 1 1
1 4 5 12 13 24 25 40 41
0 2 4 38 46 188 206 580 612
0 0 0 32 46 576 674 3840 4196
0 0 0 4 8 652 836 12052 13756
...

Test 5

Group: 1

Verdict:

input
5 10

correct output
0

user output
1 1 1 1 1 1 1 1 1
1 4 5 12 13 24 25 40 41
0 2 4 38 46 188 206 580 612
0 0 0 32 46 576 674 3840 4196
0 0 0 4 8 652 836 12052 13756
...

Test 6

Group: 2

Verdict:

input
10 4

correct output
1809464

user output
1 1 1 1 1 1 1 1 1
1 4 5 12 13 24 25 40 41
0 2 4 38 46 188 206 580 612
0 0 0 32 46 576 674 3840 4196
0 0 0 4 8 652 836 12052 13756
...

Test 7

Group: 2

Verdict:

input
10 8

correct output
209594075

user output
1 1 1 1 1 1 1 1 1
1 4 5 12 13 24 25 40 41
0 2 4 38 46 188 206 580 612
0 0 0 32 46 576 674 3840 4196
0 0 0 4 8 652 836 12052 13756
...

Test 8

Group: 2

Verdict:

input
10 12

correct output
811277399

user output
1 1 1 1 1 1 1 1 1
1 4 5 12 13 24 25 40 41
0 2 4 38 46 188 206 580 612
0 0 0 32 46 576 674 3840 4196
0 0 0 4 8 652 836 12052 13756
...

Test 9

Group: 2

Verdict:

input
10 16

correct output
17275136

user output
1 1 1 1 1 1 1 1 1
1 4 5 12 13 24 25 40 41
0 2 4 38 46 188 206 580 612
0 0 0 32 46 576 674 3840 4196
0 0 0 4 8 652 836 12052 13756
...

Test 10

Group: 2

Verdict:

input
10 20

correct output
0

user output
1 1 1 1 1 1 1 1 1
1 4 5 12 13 24 25 40 41
0 2 4 38 46 188 206 580 612
0 0 0 32 46 576 674 3840 4196
0 0 0 4 8 652 836 12052 13756
...

Test 11

Group: 3

Verdict:

input
100 40

correct output
126883191

user output
(empty)

Test 12

Group: 3

Verdict:

input
100 80

correct output
785497039

user output
(empty)

Test 13

Group: 3

Verdict:

input
100 120

correct output
324216296

user output
(empty)

Test 14

Group: 3

Verdict:

input
100 160

correct output
895190039

user output
(empty)

Test 15

Group: 3

Verdict:

input
100 200

correct output
0

user output
(empty)