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

Hiệu gần đúng

Đề bài

Mô tả

Cho hàm số d(x,y) xác định như sau:

d(x,y)={yxnếu |xy|>1,0nếu |xy|1.

Cho một dãy gồm n số nguyên a1,a2,,an. Hãy tính tổng

S=1ijnd(ai,aj).

Dữ liệu vào

  • Dòng đầu tiên chứa một số nguyên n — số phần tử của dãy.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

In ra một số nguyên duy nhất là tổng S.

Ràng buộc

  • 1n200000
  • 1ai109

Ví dụ

Input Output Giải thích
5
1 2 3 1 3
4 (52)+5=15 cặp (i,j) với ij. Các cặp đóng góp khác 0 là: d(a1,a3)=2, d(a1,a5)=2, d(a3,a4)=2, d(a4,a5)=2. Tổng bằng 4.
4
6 6 5 5
0 Mọi cặp đều có |aiaj|1, nên đóng góp bằng 0.
4
6 6 4 4
-8 Bốn cặp (6,4) mỗi cặp đóng góp 2, tổng bằng 8.

Lưu ý: kết quả có thể rất lớn (vượt phạm vi kiểu long long 64-bit), cần dùng kiểu số lớn hoặc tính toán cẩn thận với độ chính xác cao.

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