Aproapeperm

Time limit: 1s Memory limit: 64MB Input: aproapeperm.in Output: aproapeperm.out

Cerință

Dată fiind o valoare nn, să se determine câte permutări de lungime nn există astfel încât orice valoare ii se află pe una dintre pozițiile i1i-1, ii, i+1i+1. În plus, nu sunt permise 33 puncte fixe consecutive (dacă pe poziția ii se află chiar valoarea ii, spunem că acolo este un punct fix).

Date de intrare

Pe prima linie a fișierului de intrare aproapeperm.in se află valoarea nn.

Date de ieșire

Fișierul de ieșire aproapeperm.out va conține un singur număr întreg, reprezentând valoarea cerută modulo 109+710^9+7.

Restricții și precizări

  • Pentru teste in valoare de 19 de puncte 1n8 \leq n \leq 8;
  • Pentru alte teste in valoare de 22 de puncte 1n40 \leq n \leq 40;
  • Pentru alte teste in valoare de 59 de puncte 1n100 000 \leq n \leq 100 \ 000;

Exemplul 1

aproapeperm.in

6

aproapeperm.out

8

Explicație

Permutările numărate sunt:

1 2 4 3 5 6
1 2 4 3 6 5
1 3 2 4 6 5
1 3 2 5 4 6
2 1 3 4 6 5
2 1 3 5 4 6
2 1 4 3 5 6
2 1 4 3 6 5

Log in or sign up to be able to send submissions!