baraj

Time limit: 0.1s Memory limit: 10MB Input: baraj.in Output: baraj.out

Comisia olimpiadei organizează selecția pentru lotul lărgit, etapă la care participă NN elevi. Pentru competiția finală, comisia dorește să formeze o echipă de dimensiune KK, unde KK nu este fixat inițial, putând fi orice număr natural cuprins între 22 și NN (inclusiv).

După ce se aleg cei KK membri ai echipei, structura internă a acesteia trebuie stabilită respectând următoarele reguli:

  1. Trebuie desemnați un Căpitan și un Vice-căpitan (aceștia trebuie să fie doi elevi distincți din echipa selectată).
  2. Restul de K−2K - 2 membri rămași trebuie repartizați în două tabere de antrenament: Tabăra de Info și Tabăra de Mate. Fiecare dintre acești elevi trebuie să aleagă exact o tabără (este permis ca o tabără să rămână fără niciun membru).

Cerință

Cunoscând numărul total de elevi NN, scrieți un program care să determine numărul total de moduri în care se poate forma și structura echipa, luând în calcul toate dimensiunile posibile K∈[2,N]K \in [2, N]. Deoarece acest număr poate fi astronomic, se cere rezultatul modulo 1 000 000 0071 \ 000 \ 000 \ 007 (restul împărțirii la 109+710^9 + 7).

Date de intrare

Fișierul de intrare baraj.in conține pe prima linie un singur număr natural NN, reprezentând numărul de elevi participanți la selecție.

Date de ieșire

Fișierul de ieșire baraj.out va conține pe o singură linie un număr natural, reprezentând numărul total de moduri în care se poate forma echipa, modulo 1 000 000 0071 \ 000 \ 000 \ 007.

Restricții și precizări

  • 2≤N≤1092 \le N \le 10^9
  • Pentru formarea echipei, ordinea alegerii membrilor de bază (exceptând căpitanul și vice-căpitanul) nu contează, ci doar identitatea lor și tabăra în care sunt repartizați.
# Punctaj Restricții
1 40 2≤N≤200 0002 \le N \le 200 \ 000
2 60 fără restricții suplimentare

Exemplul 1

baraj.in

3

baraj.out

18

Explicație

Avem N=3N = 3 elevi. Dimensiunea echipei poate fi K=2K = 2 sau K=3K = 3.

Cazul K=2K = 2:

  • Se aleg 2 elevi din cei 3 disponibili ((32)=3\binom{3}{2} = 3 moduri).
  • Din cei 2 aleși, se desemnează căpitanul și vice-căpitanul (2×1=22 \times 1 = 2 moduri).
  • Mai rămân 00 membri de repartizat în tabere (20=12^0 = 1 mod).
    Număr moduri pentru K=2K = 2: 3×2×1=63 \times 2 \times 1 = 6 moduri.

Cazul K=3K = 3:

  • Se aleg 3 elevi din cei 3 disponibili ((33)=1\binom{3}{3} = 1 mod).
  • Din cei 3 aleși, se desemnează căpitanul și vice-căpitanul (3×2=63 \times 2 = 6 moduri).
  • Mai rămâne exact 11 membru, care trebuie să aleagă între Tabăra de Info și Tabăra de Mate (21=22^1 = 2 moduri).
    Număr moduri pentru K=3K = 3: 1×6×2=121 \times 6 \times 2 = 12 moduri.

Numărul total de moduri este 6+12=186 + 12 = 18. Rezultatul se afișează modulo 109+710^9 + 7, deci 1818.

Exemplul 2

baraj.in

4

baraj.out

108

Explicație

Pentru N=4N = 4, luăm în calcul echipe de dimensiuni K∈{2,3,4}K \in \{2, 3, 4\}.

  • K=2K = 2: (42)×(2×1)×20=6×2×1=12\binom{4}{2} \times (2 \times 1) \times 2^0 = 6 \times 2 \times 1 = 12 moduri
  • K=3K = 3: (43)×(3×2)×21=4×6×2=48\binom{4}{3} \times (3 \times 2) \times 2^1 = 4 \times 6 \times 2 = 48 moduri
  • K=4K = 4: (44)×(4×3)×22=1×12×4=48\binom{4}{4} \times (4 \times 3) \times 2^2 = 1 \times 12 \times 4 = 48 moduri

Total general: 12+48+48=10812 + 48 + 48 = 108 moduri.

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