Limbaj formal

Time limit: 0.1s Memory limit: 128MB Input: limbajformal.in Output: limbajformal.out

Enunț

RAU-Gigel se pregătește pentru admiterea la facultate. Curios din fire, el împrumută niște cursuri de la un prieten student, de unde află despre limbajele formale, gramatici, automate finite, expresii regulate și multe alte lucruri interesante. Găsește acolo și o problemă: Se consideră un alfabet XX format din NN simboluri (diferite două câte două). Pe mulțimea XX este definită o relație de ordine totală (să o numim lexicografică), adică orice două elemente aa și bb alegem din XX (aa diferit de bb), avem fie a<ba \lt b, fie b<ab \lt a. Câte cuvinte se pot forma cu simboluri din alfabetul XX astfel încât simbolurile prezente în cuvânt să fie în ordine strict crescătoare (de la stânga spre dreapta) și să nu existe în cuvânt două simboluri consecutive lexicografic? Deoarece calculele devin destul de complicate, RAU-Gigel ar avea nevoie de ajutorul vostru. În plus, numerele obținute s-ar putea să fie destul de mari, RAU-Gigel ar vrea să le calculați modulo MOD{MOD}.

Cerința

Ajutați-l pe RAU-Gigel să afle răspunsul la întrebare. Repede, dacă puteți!

Date de intrare

Fișierul de intrare limbajformal.in conține pe prima linie un număr natural NN reprezentând numărul de simboluri din alfabet.

Date de ieșire

Fișierul de ieșire limbajformal.out va conține un singur rând, pe care se află un sigur număr reprezentând răspunsul la întrebare.

Restricții și precizări

  • 1N1 000 000 000,MOD=1 000 000 0091 \leq N \leq 1 \ 000 \ 000 \ 000, MOD = 1 \ 000 \ 000 \ 009;
  • Cuvintele au cel puțin un simbol;
  • Pentru teste în valoare de 1010 de puncte: N10N \leq 10;
  • Pentru teste în valoare încă 3030 de puncte: N1 000 000N ≤ 1 \ 000 \ 000.

Exemplu

limbajformal.in

5

limbajformal.out

12

Explicație:

Alfabetul conține 55 simboluri. Să le notăm A,B,C,D,EA, B, C, D, E, cu A<B<C<D<EA < B < C < D < E. Există 1212 cuvinte care respectă cerințele problemei: A,B,C,D,E,AC,AD,AE,BD,BE,CE,ACEA, B, C, D, E, AC, AD, AE, BD, BE, CE, ACE. Secvența ABAB nu este validă pentru că simbolurile AA și BB sunt consecutive lexicografic. Secvența ADEADE nu este validă pentru că simbolurile DD și EE sunt consecutive lexicografic.

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