Tổng phần dư từng cặp

Đề bài

Mô tả

Cho một dãy a gồm n số nguyên dương đôi một phân biệt, đánh số từ 1 đến n.

Với mỗi k từ 1 đến n, đặt

pk=∑1≤i,j≤k(aimodaj),

trong đó xmody là phần dư của phép chia x cho y.

Hãy tính và in ra p1,p2,…,pn.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n, độ dài của dãy.
  • Dòng thứ hai chứa n số nguyên phân biệt a1,a2,…,an.

Dữ liệu ra

  • In ra n số nguyên p1,p2,…,pn trên cùng một dòng, cách nhau bởi dấu cách.

Ràng buộc

  • 2≤n≤2·105
  • 1≤ai≤3·105
  • ai≠aj với mọi i≠j

Ví dụ

Input Output Giải thích
4
6 2 7 3
0 2 12 22 p1=6mod6=0.
p2 thêm các cặp có chỉ số 2: (6mod2)+(2mod6)+(2mod2)=0+2+0=2, nên p2=2.
p3=12, p4=22.
3
3 2 1
0 3 5 p1=0. p2 thêm (3mod2)+(2mod3)+(2mod2)=1+2+0=3, nên p2=3. p3 thêm (3mod1)+(2mod1)+(1mod3)+(1mod2)+(1mod1)=0+0+1+1+0=2, nên p3=5.

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