trang chủ / bài tập / carddeck

Chồng Bài

Đề bài

Mô tả

Bạn có một chồng gồm n lá bài và muốn sắp xếp lại thành một chồng mới.

Mỗi lá bài mang một giá trị nguyên từ 1 đến n; giá trị của lá thứ ipi. Tất cả pi đôi một khác nhau. Các lá bài trong chồng được đánh số từ dưới lên trên, tức p1 là lá dưới cùng và pn là lá trên cùng.

Ở mỗi bước, bạn chọn một số nguyên k>0, lấy k lá trên cùng của chồng gốc và đặt chúng, giữ nguyên thứ tự hiện tại, lên trên chồng mới. Bạn lặp lại thao tác này cho đến khi chồng gốc rỗng.

Định nghĩa độ lớn của một chồng bài là

i=1nnni·pi.

Cho chồng bài ban đầu, hãy xuất chồng bài có độ lớn lớn nhất mà bạn có thể tạo ra.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên t là số bộ dữ liệu.
  • Với mỗi bộ:
    • Dòng đầu chứa số nguyên n là số lá bài.
    • Dòng thứ hai chứa n số nguyên p1,p2,,pn là giá trị các lá bài từ dưới lên trên.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra chồng bài có độ lớn lớn nhất, liệt kê giá trị các lá từ dưới lên trên.

Nếu có nhiều đáp án, in ra một đáp án bất kỳ (bài toán có đáp án duy nhất về mặt độ lớn nên thứ tự các lá là xác định).

Ràng buộc

  • 1t1000
  • 1n105
  • 1pin; pipj nếu ij
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 105

Ví dụ

Input Output Giải thích
4
4
1 2 3 4
5
1 5 2 4 3
6
4 2 5 3 6 1
1
1
4 3 2 1
5 2 4 3 1
6 1 5 3 4 2
1
Bộ 1: lấy từng lá một từ trên xuống, thu được [4,3,2,1] với độ lớn 43·4+42·3+41·2+40·1=313.
3
1
1
2
1 2
2
2 1
1
2 1
2 1
Bộ 2: lấy lá trên cùng (2) đặt xuống dưới chồng mới, rồi lấy lá còn lại, được [2,1]. Bộ 3 đã sẵn có 2 ở đáy nên lấy cả hai lá một lần, giữ nguyên [2,1].

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0