Loading Now

findTheModuleArray

Cho một mảng a gồm n phần tử khác nhau, 1<=a[i]<=n. đặc biệt là:

  • a[0] mod n = x0
  • a[0]xa[1] mod n = x1
  • a[0]xa[1]xa[2] mod n = x2
  • a[0]xa[1]xa[2]x...a[n-2] mod n = xn-2
  • a[0]xa[1]xa[2]x...a[n-1] mod n = xn-1
  • Mảng b={x0, x1, x2, ...,xn-1} gồm n phần tử khác nhau , 0<=b[i]<=n-1.

Bạn được cho số nguyên n, hãy tìm mảng a này. Nếu có nhiều mảng a thỏa mãn thì in ra mảng a có mảng b xuất hiện trước theo thứ tự từ điển. Còn nếu không có mảng a nào thỏa mãn thì in ra mảng rỗng a={}.

Ví dụ:

  • Với n=4 thì a={1,3,2,4}. Có duy nhất mảng này thỏa mãn. 
    1 mod 4=1
    1x3 mod 4=3
    1x3x2 mod 4=2
    1x3x2x4 mod 4=0
    b={1,3,2,0}

  • Với n=5 thì a={1,2,4,3,5}. Có 2 mảng a thỏa mãn là {1,2,4,3,5}, {1,3,4,2,5} nhưng ta chọn mảng a mà có mảng b xuất hiện trước theo thứ tự từ điển.
    Mảng a={1,2,4,3,5} thì:
    1 mod 5=1
    1x2 mod 5=2
    1x2x4 mod 5=3
    1x2x4x3 mod 5=4
    1x2x4x3x5 mod 5=0
    b={1,2,3,4,0}.
    Mảng a={1,3,4,2,5} thì:
    1 mod 5=1
    1x3 mod 5=3
    1x3x4 mod 5=2
    1x3x4x2 mod 5=4
    1x3x4x2x5 mod 5=0
    b={1,3,2,4,0}.

Đầu vào/Đầu ra:

  • [Giới hạn thời gian chạy] 0.5 giây với C++, 3 giây với Java và C#, 4 giây vs Python, GO và Js

  • [Đầu vào] integer n
    1 <= n <= 105

  • [Đầu ra] arr.integer
    Tìm mảng a.

Post Comment

Contact