100m

Time limit: 0.25s Memory limit: 2MB Input: 100m.in Output: 100m.out


Proba de 100 metri plat este una dintre cele mai populare și prestigioase probe din cadrul oricărui concurs de atletism. Recordul modial al acestei probe este deținut în prezent de sportivul jamaican Usain Bolt cu timpul de 9.589.58 secunde.

Uneori lupta dintre sportivi este atât de strânsă încât diferențierea dintre atleți se poate face doar cu ajutorul camerelor de luat vederi ce surprind finish-ul atleților. Au existat cazuri când doi sau mai multi atleți au fost declarați la egalitate.

Cerinţă

Considerând NN atleți, ce participă la o cursă de 100 metri plat, identificați prin numerele 1,2,,N,1,2,…,N, să se scrie un program care determină numărul PP al clasamentelor distincte care pot fi obținute după finalizarea cursei. De exemplu, pentru N=2N = 2, se pot obține 33 clasamente distincte: (1,2),(2,1),(1=2)(1,2), (2,1),(1=2); unde (1=2)(1=2) reprezintă situația când ambii atleți s-au clasat la egalitate.

Date de intrare

Fişierul de intrare 100m.in conţine pe prima linie numărul natural NN, cu semnificaţia de mai sus.

Date de ieșire

Fişierul de ieşire 100m.out va conţine pe prima linie restul împărţirii numărului PP la 666 013666 \ 013.

Restricții și precizări

  • 2N5 000;2 \leq N \leq 5 \ 000;
  • Două clasamente se consideră distincte dacă diferă prin cel puțin o poziție;
  • Pentru teste în valoare de 3232 de puncte N500N \leq 500.

Exemplul 1

100m.in

3

100m.out

13

Explicație

N=3N = 3 atleți.

Numerotând atleții cu 11, 22 și 33 există 1313 clasamente distincte: (1,2,3)(1, 2, 3); (1,3,2)(1, 3, 2); (2,1,3)(2, 1, 3); (2,3,1)(2, 3, 1); (3,1,2)(3, 1, 2); (3,2,1)(3, 2, 1); (1,(2=3))(1, (2=3)); (2,(1=3))(2, (1=3)); (3,(1=2))(3, (1=2)); ((2=3),1)((2=3), 1); ((1=3),2)((1=3), 2); ((1=2),3)((1=2), 3); (1=2=3)(1=2=3).

Prin (i=j)(i=j) am notat posibilitatea ca atleții ii și jj să termine cursa în același timp. Prin (i=j=k)(i=j=k) am notat posibilitatea ca atleții i,ji, j și kk să termine cursa în același timp.

Exemplul 2

100m.in

1771

100m.out

74140

Explicație

N=1 771N = 1 \ 771 atleți.

Numărul de clasamente distincte în care atleții pot termina cursa, modulo 666 013666 \ 013, este 74 14074 \ 140

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