trang chủ / đề bài / 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)={y−xnếu |x−y|>1,0nếu |x−y|≤1.

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

S=∑1≤i≤j≤nd(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

  • 1≤n≤200000
  • 1≤ai≤109

Ví dụ

Input Output Giải thích
5
1 2 3 1 3
4 Có (52)+5=15 cặp (i,j) với i≤j. 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ó |ai−aj|≤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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0