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

Kệ đồ uống

Đề bài

Mô tả

Trên quầy có n loại đồ uống được đánh số từ 1 đến n. Loại thứ i có lớp bọt dày ai milimét.

Ban đầu kệ trưng bày trống rỗng. Bạn phải xử lý q truy vấn, mỗi truy vấn cho một số nguyên x:

  • Nếu loại đồ uống x đang nằm trên kệ thì lấy nó ra khỏi kệ.
  • Ngược lại thì đặt loại đồ uống x lên kệ.

Sau mỗi truy vấn, hãy cho biết điểm số của kệ, được định nghĩa là số cặp chỉ số (i,j) với i<j, cả hai loại ij đều đang nằm trên kệ, và gcd(ai,aj)=1.

Lưu ý rằng các loại đồ uống khác nhau có thể có cùng độ dày bọt, và cặp gồm hai loại đều có độ dày bọt bằng 1 vẫn được tính vì gcd(1,1)=1.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nq: số loại đồ uống và số truy vấn.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an: độ dày lớp bọt của từng loại.
  • q dòng tiếp theo, mỗi dòng chứa một số nguyên x: chỉ số loại đồ uống cần thêm vào hoặc lấy ra khỏi kệ.

Dữ liệu ra

In ra q dòng, dòng thứ k là điểm số của kệ sau khi thực hiện truy vấn thứ k.

Ràng buộc

  • 1n,q2·105
  • 1ai5·105
  • 1xn

Ví dụ

Input Output Giải thích
5 6
1 2 3 4 6
1
2
3
4
5
1
0
1
3
5
6
2
Kệ lần lượt là {1}, {1,2}, {1,2,3}, {1,2,3,4}, {1,2,3,4,5}, {2,3,4,5}. Với kệ {1,2,3,4} (bọt 1,2,3,4) có 5 cặp nguyên tố cùng nhau, chỉ cặp (2,4) với gcd(2,4)=2 là không tính. Truy vấn cuối lấy loại 1 ra, mất đi 4 cặp nên còn 2.
5 10
1 1 1 1 1
1
2
3
4
5
5
4
3
2
1
0
1
3
6
10
6
3
1
0
0
Mọi độ dày bọt đều bằng 1 nên mọi cặp trên kệ đều được tính: với k loại trên kệ, điểm số là (k2). Năm truy vấn đầu thêm dần đủ năm loại, năm truy vấn sau lấy chúng ra theo thứ tự ngược lại.

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 csc 6.12.0.200 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 kotlinc 2.4.10 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0