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

Đổi dấu

Đề bài

Mô tả

Cho n số nguyên a1,a2,,an, với n lẻ. Bạn được phép đổi dấu một số phần tử tuỳ ý (có thể tất cả, có thể không đổi phần tử nào), tức là thay ai bởi ai.

Gọi dãy thu được là b1,b2,,bn (mỗi bi bằng ai hoặc ai). Hãy đổi dấu sao cho đồng thời thoả mãn:

  1. Có ít nhất n12 hiệu liền kề bi+1bi (với i=1,2,,n1) không âm.
  2. Có ít nhất n12 hiệu liền kề bi+1bi (với i=1,2,,n1) không dương.

Một hiệu bằng 0 được tính cho cả hai điều kiện. Với ràng buộc đã cho, luôn tồn tại ít nhất một cách đổi dấu hợp lệ. Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm hai dòng:
    • Dòng thứ nhất chứa số nguyên lẻ n.
    • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một dòng gồm n số nguyên b1,b2,,bn thoả mãn yêu cầu.

Ràng buộc

  • 1t500
  • 3n99, n lẻ
  • 109ai109
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 104

Ví dụ

Input Output Giải thích
5
3
-2 4 3
5
1 1 1 1 1
5
-2 4 7 -6 4
9
9 7 -4 -2 1 -3 9 -4 -5
9
-4 1 9 4 8 9 5 1 -9
2 -4 3
1 -1 1 -1 1
2 -4 7 -6 4
9 -7 4 -2 1 -3 9 -4 5
4 -1 9 -4 8 -9 5 -1 9
Ở bộ thứ nhất, hiệu (4)2=6 không dương còn 3(4)=7 không âm, mỗi điều kiện cần ít nhất 1 hiệu. Ở bộ thứ hai, cả bốn hiệu đều bằng 0 nên vừa không âm vừa không dương.
4
3
0 0 0
3
1000000000 1000000000 1000000000
3
-1000000000 -1000000000 -1000000000
3
-1000000000 0 1000000000
0 0 0
1000000000 -1000000000 1000000000
1000000000 -1000000000 1000000000
1000000000 0 1000000000
Số 0 đổi dấu vẫn là 0. Ở bộ cuối, |109||109| bằng nhau nên dãy 109,0,109 hợp lệ: hiệu 109 không dương, hiệu 109 không âm.

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