Cân bằng độ thay đổi rating

Đề bài

Mô tả

Một vòng thi vừa kết thúc với n thí sinh. Theo kết quả, độ thay đổi rating dự kiến của thí sinh thứ iai. Các độ thay đổi này cân bằng hoàn hảo — tổng của chúng bằng 0.

Vì một số trục trặc kỹ thuật, vòng thi bị coi là "nửa tính điểm", nghĩa là mọi độ thay đổi rating phải được chia đôi. Tuy nhiên có hai điều kiện:

  • Với mỗi thí sinh i, độ thay đổi mới bi phải là số nguyên và gần ai2 nhất có thể. Nói cách khác, bi=ai2 hoặc bi=ai2. Đặc biệt, nếu ai chẵn thì bi=ai2.
  • Các độ thay đổi mới cũng phải cân bằng hoàn hảo — tổng của tất cả bi phải bằng 0.

Hãy tìm một cách chia thỏa mãn cả hai điều kiện. 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 n — số thí sinh.
  • n dòng tiếp theo, mỗi dòng chứa một số nguyên ai.

Đảm bảo tổng của tất cả ai bằng 0.

Dữ liệu ra

In ra n số nguyên bi, mỗi số trên một dòng theo đúng thứ tự dữ liệu vào. Với mọi i phải có bi=ai2 hoặc bi=ai2, và tổng tất cả bi bằng 0. Luôn tồn tại đáp án với mọi dữ liệu vào hợp lệ.

Ràng buộc

  • 2n13845
  • 336ai1164
  • Tổng tất cả ai bằng 0.

Ví dụ

Input Output Giải thích
3
10
-5
-5
5
-2
-3
10 chẵn nên b1=5. Với 5 ta chọn 2 (làm tròn lên) và 3 (làm tròn xuống). Tổng 523=0. Một đáp án khác là 5,3,2.
7
-7
-29
0
3
24
-29
38
-3
-14
0
1
12
-15
19
Mỗi bi là làm tròn lên hoặc xuống của ai2; tổng bằng 0.

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 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