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

Chênh lệch

Đề bài

Mô tả

n tấm thẻ đặt thành một hàng ngang trên bàn, tấm thẻ thứ i có ghi một số có giá trị ai. Khi nhấc một tấm thẻ ra khỏi bàn, ta cần tính xem giá trị lớn nhất trong các thẻ còn lại trên bàn lớn hơn giá trị tấm thẻ nhấc ra một lượng bao nhiêu.

Ví dụ ta có 6 tấm thẻ trên bàn có giá trị lần lượt là 8,6,7,5,9,4.

  • Khi nhấc tấm thẻ thứ nhất ra khỏi bàn: Giá trị lớn nhất trong các thẻ còn lại trên bàn là 9, lớn hơn giá trị tấm thẻ nhấc ra một lượng là 98=1.
  • Khi nhấc tấm thẻ thứ 5 ra khỏi bàn: Giá trị lớn nhất trong các thẻ còn lại trên bàn là 8, lớn hơn giá trị tấm thẻ nhấc ra một lượng là 89=1.

Lần lượt nhấc từng tấm thẻ (từ thẻ thứ nhất đến thẻ thứ n) ra khỏi bàn, cần tính xem giá trị lớn nhất trong các thẻ còn lại trên bàn lớn hơn giá trị tấm thẻ nhấc ra một lượng bao nhiêu, sau đó đặt tấm thẻ trở lại vị trí cũ trên bàn.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương n là số lượng tấm thẻ.
  • Dòng thứ hai chứa n số nguyên lần lượt là a1,...,an cho biết giá trị các tấm thẻ. Các số trên một dòng được phân tách bởi khoảng trắng.

Dữ liệu ra

Gồm n số trên 1 dòng: số thứ i ghi kết quả khi nhấc thẻ thứ i ra khỏi bàn. Hai số kề nhau được phân tách bởi một khoảng trắng.

Ràng buộc

  • 2n105
  • 1ai106, với i=1...n
  • 80% số test: 2n104
  • 20% số test: 104n105

Ví dụ

Input Output Giải thích
6
8 6 7 5 9 4
1 3 2 4 -1 5
5
6 8 5 4 8
2 0 3 4 0

Bình luận

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