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

Tổng Tiền Tố Âm

Đề bài

Mô tả

Cho một mảng a gồm n số nguyên. Mỗi vị trí i được đánh dấu là khóa hoặc mở khóa.

Bạn có thể lấy các giá trị ở những vị trí mở khóa, sắp xếp lại theo thứ tự tùy ý rồi đặt trở lại vào chính các vị trí mở khóa đó. Bạn không được xóa giá trị nào, không được thêm giá trị mới, và không được thay đổi giá trị ở các vị trí khóa. Có thể giữ nguyên thứ tự ban đầu.

Gọi p là dãy tổng tiền tố của mảng a sau khi sắp xếp lại: p1=a1, p2=a1+a2, ..., pn=a1+a2++an.

Gọi k là giá trị j lớn nhất (1jn) sao cho pj<0. Nếu không có j nào thỏa mãn pj<0 thì k=0.

Hãy sắp xếp lại các giá trị sao cho k nhỏ nhất có thể, và in ra mảng a sau khi sắp xếp.

Nếu có nhiều đáp án, in ra bất kỳ đáp án nào (giá trị ở vị trí khóa phải bằng giá trị ban đầu, còn các giá trị ở vị trí mở khóa phải là một hoán vị của các giá trị mở khóa ban đầu).

Dữ liệu vào

  • Dòng đầu chứa số nguyên t: số lượng bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng đầu chứa số nguyên n.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an.
    • Dòng thứ ba chứa n số nguyên l1,l2,,ln, trong đó li=0 nghĩa là vị trí i mở khóa, li=1 nghĩa là vị trí i khóa.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra n số nguyên là mảng a sau khi sắp xếp lại sao cho k nhỏ nhất có thể.

Ràng buộc

  • 1t1000
  • 1n100
  • 105ai105
  • 0li1

Ví dụ

Input Output Giải thích
1
3
1 3 2
0 0 0
3 2 1 Mọi cách sắp xếp đều cho k=0 vì mọi tổng tiền tố đều không âm. Đây là một đáp án hợp lệ.
1
4
2 -3 4 -1
1 1 1 1
2 -3 4 -1 Tất cả vị trí đều khóa nên phải in đúng mảng ban đầu.
1
7
-8 4 -2 -6 4 7 1
1 0 0 0 1 1 0
-8 4 1 -2 4 7 -6 Tổng tiền tố là [8,4,3,5,1,6,0], nên k=5. Không có cách nào để k<5.

Vì có nhiều đáp án hợp lệ, hệ thống dùng trình chấm riêng: chỉ cần mảng in ra giữ nguyên các vị trí khóa, là một hoán vị của các giá trị mở khóa, và đạt k nhỏ nhất.

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