CSES - Putka Open 2015 – 1/6 - Results
Submission details
Task:Lähetit
Sender:
Submission time:2015-07-17 17:44:13 +0300
Language:C++
Status:READY
Result:12
Feedback
groupverdictscore
#1ACCEPTED12
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.09 s1details
#2ACCEPTED0.08 s1details
#3ACCEPTED0.09 s1details
#4ACCEPTED0.10 s1details
#5ACCEPTED0.10 s1details
#6ACCEPTED0.09 s2details
#7--2details
#8--2details
#9--2details
#10--2details
#11--3details
#12--3details
#13--3details
#14--3details
#15--3details

Code

#include <iostream>
#include <algorithm>
#include <vector>
#define N 2048
#define M 1000000007

using namespace std;

long long ans = 0;

void brute (vector<pair<int, int> > v, const int i, const int n, const int k, pair<int, int> p) {
    if (p.first != -1) v.push_back(p);
    int x = v.size() == 0 ? 0 : v[v.size() - 1].first;
    for (int y = v.size() == 0 ? 0 : v[v.size() - 1].second; y < n; y++) {
        for (; x < n; x++) {
            bool b = true;

            for (pair<int, int> l : v) {
                if (x + y == l.first + l.second || x - l.first == y - l.second) {
                    b = false;
                    break;
                }
            }

            if (b) {
                if (i + 1 == k) {
                    ans++;
                } else {
                    brute(v, i + 1, n, k, make_pair(x, y));
                }
            }
        }
        x = 0;
    }
}

int main()
{
    int n, k;
    cin>>n>>k;
    vector<pair<int, int> > v;

    brute(v, 0, n, k, make_pair(-1, -1));

    cout<<ans % M<<endl;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
5 2

correct output
240

user output
240

Test 2

Group: 1

Verdict: ACCEPTED

input
5 4

correct output
2728

user output
2728

Test 3

Group: 1

Verdict: ACCEPTED

input
5 6

correct output
1960

user output
1960

Test 4

Group: 1

Verdict: ACCEPTED

input
5 8

correct output
32

user output
32

Test 5

Group: 1

Verdict: ACCEPTED

input
5 10

correct output
0

user output
0

Test 6

Group: 2

Verdict: ACCEPTED

input
10 4

correct output
1809464

user output
1809464

Test 7

Group: 2

Verdict:

input
10 8

correct output
209594075

user output
(empty)

Test 8

Group: 2

Verdict:

input
10 12

correct output
811277399

user output
(empty)

Test 9

Group: 2

Verdict:

input
10 16

correct output
17275136

user output
(empty)

Test 10

Group: 2

Verdict:

input
10 20

correct output
0

user output
(empty)

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)