Vũ hội

View as PDF

Submit solution

Points: 100.00 (partial)
Time limit: 1.0s
Memory limit: 500M
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Một buổi vũ hội có ~n~ người tham dự (~n~ là một số chẵn). BTC quyết định chia mọi người thành hai vòng nhảy, mỗi vòng có đúng ~n/2~ người tham gia và mỗi người chỉ tham gia đúng một vòng nhảy.

Vòng nhảy là một vòng tròn bao gồm ~1~ hoặc nhiều người. Giả sử một vòng nhảy được biểu diễn bằng một mảng ~[a_1,a_2,...,a_k]~ thì hai vòng nhảy được gọi là giống nhau nếu bằng cách dịch các phần tử của một trong hai mảng biểu diễn sang trái một số lần nhất định, ta nhận được mảng còn lại. Ví dụ ~[1,2,3,4]~ và ~[3,4,1,2]~ là hai vòng nhảy giống nhau vì nếu ta dịch các phần tử của mảng thứ hai sang trái hai lần, ta sẽ được mảng thứ nhất.

Ví dụ 1, nếu ~n = 2~ thì chỉ có đúng 1 cách chia, một vòng nhảy gồm người thứ nhất và một vòng nhảy gồm người thứ hai.

Ví dụ 2, nếu ~n = 4~ thì ta có ~3~ cách chia như sau:

  • một vòng là ~[1,2]~, vòng còn lại là ~[3,4]~
  • một vòng là ~[1,3]~, vòng còn lại là ~[2,4]~
  • một vòng là ~[3,2]~, vòng còn lại là ~[4,1]~

Nhiệm vụ của bạn là tính xem có bao nhiêu cách để chia ~n~ người thành hai vòng nhảy, mỗi vòng có đúng ~n/2~ người tham gia.

Input:

  • Một số nguyên ~n~ ~(2 \leq n \leq 20)~, ~n~ là số chẵn.

Output:

  • Một số nguyên duy nhất là kết quả bài toán. Dữ liệu đảm bảo rằng đáp án không vượt quá kiểu dữ liệu số nguyên 64-bits.

Ví dụ:

Input
8
Output
1260
Input
20
Output
12164510040883200

Comments

Please read the guidelines before commenting.



  • 0
    TruongThongTK21  commented on Oct. 11, 2021, 6:56 a.m.

    Cho em hỏi là trong các input có n là số lẻ, nhưng tại sao em in ra 0 hoặc -1 lại không đúng ạ?


    • 1
      quan  commented on Oct. 11, 2021, 7:27 a.m.

      Lỗi test nha em. Đã fixed!