Thao Tác Lớn Nhất

Xem PDF

Điểm: 150 Thời gian: 2.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

ami có một dãy hoán vị \(A\) độ dài \(n\). Nhắc lại, một hoán vị độ dài \(n\) là một dãy số mà mỗi số nguyên dương từ \(1\) đến \(n\) đều xuất hiện trong dãy đúng một lần.

Các bạn có thể chọn cặp số \(i\)\(j\) khác nhau và đổi chỗ \(A_i\)\(A_j\). Các bạn được áp dụng thao tác trên đúng 1 lần. Mục đích là cần làm cho giá trị \(S\) sau đạt lớn nhất:

\(S\) = \(\sum A_i * (n+1)^{1 + n - i}\) \(\forall\) \(1 \leq i \leq n\).

Hãy in ra dãy số tối ưu \(A\) sau khi thực hiện thao tác trên đúng một lần. Nếu có nhiều đáp án, các bạn có thể in ra một đáp án bất kì.

Input

Dòng đầu tiên chứa hai số nguyên dương \(n\) là số phần tử của dãy \(A\).

Dòng tiếp theo chứa \(n\) số nguyên dương \(A_i\) biểu thị một phần tử của dãy \(A\).

Dữ liệu đảm bảo dãy

Output

Hãy in ra dãy \(A\) sau khi thực hiện thao tác một cách tối ưu.

Sample Input 1

3 
1 2 3

Sample Output 1

3 2 1

Sample Input 2

2
1 2

Sample Output 2

2 1

Giới hạn

  • \(50\)% điểm tương ứng với \(2 \leq n\leq 10\).

  • \(50\)% điểm tương ứng với \(2 \leq n \leq 5000\).

Giải thích

Ở ví dụ 1, các cách thực hiện thao tác là:

  • Đổi cặp (1, 2) ta được 2 1 3, tổng \(S\) = \(2*4^2 + 1*4^1 + 3*4^0\) = 39.
  • Đổi cặp (2, 3) ta được 1 3 2, tổng \(S\) = \(1*4^2 + 3*4^1 + 2*4^0\) = 30.
  • Đổi cặp (1, 3) ta được 3 2 1, tổng \(S\) = \(3*4^2 + 2*4^1 + 1*4^0\) = 57.

Vậy đáp án là [3 2 1].

Ở ví dụ 2, chỉ có một cách đổi là đổi cặp (1, 2). Ta sẽ nhận được dãy [2 1].


Bình luận

Không có bình luận nào.