| Task: | Lähetit |
| Sender: | Henrik Lievonen |
| Submission time: | 2015-07-19 22:05:14 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | WRONG ANSWER | 0 |
| #3 | TIME LIMIT EXCEEDED | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.08 s | 1 | details |
| #2 | WRONG ANSWER | 0.09 s | 1 | details |
| #3 | WRONG ANSWER | 0.09 s | 1 | details |
| #4 | WRONG ANSWER | 0.09 s | 1 | details |
| #5 | WRONG ANSWER | 0.07 s | 1 | details |
| #6 | WRONG ANSWER | 0.09 s | 2 | details |
| #7 | WRONG ANSWER | 0.13 s | 2 | details |
| #8 | WRONG ANSWER | 0.24 s | 2 | details |
| #9 | WRONG ANSWER | 0.32 s | 2 | details |
| #10 | WRONG ANSWER | 0.43 s | 2 | details |
| #11 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #12 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #13 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #14 | TIME LIMIT EXCEEDED | -- | 3 | details |
| #15 | TIME LIMIT EXCEEDED | -- | 3 | details |
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: WRONG ANSWER
| 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: WRONG ANSWER
| 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: WRONG ANSWER
| 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: WRONG ANSWER
| 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: WRONG ANSWER
| 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: WRONG ANSWER
| 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: WRONG ANSWER
| 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: WRONG ANSWER
| 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: WRONG ANSWER
| 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: WRONG ANSWER
| 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: TIME LIMIT EXCEEDED
| input |
|---|
| 100 40 |
| correct output |
|---|
| 126883191 |
| user output |
|---|
| (empty) |
Test 12
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 80 |
| correct output |
|---|
| 785497039 |
| user output |
|---|
| (empty) |
Test 13
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 120 |
| correct output |
|---|
| 324216296 |
| user output |
|---|
| (empty) |
Test 14
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 160 |
| correct output |
|---|
| 895190039 |
| user output |
|---|
| (empty) |
Test 15
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 100 200 |
| correct output |
|---|
| 0 |
| user output |
|---|
| (empty) |
