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

Ngủ Trong Lớp (Khó)

Đề bài

Mô tả

Bessie hay ngủ gật trong lớp, và bạn thân Elsie đã ghi lại nhật ký theo dõi gồm N tiết học, trong đó tiết thứ i Bessie ngủ gật ai lần.

Elsie muốn chỉnh sửa nhật ký theo hai loại thao tác:

  • Gộp: Chọn hai tiết liền kề, gộp thành một tiết duy nhất có số lần ngủ gật bằng tổng hai tiết cũ (số tiết giảm đi 1).
  • Tách: Chọn một tiết có giá trị v, tách thành hai tiết liền kề với giá trị lần lượt là xvx (với 1xv1, số tiết tăng lên 1).

Cho Q truy vấn. Với mỗi truy vấn có giá trị d, hãy tìm số thao tác tối thiểu để làm cho tất cả các tiết học đều có số lần ngủ gật đúng bằng d, hoặc in ra 1 nếu không thể.

Dữ liệu vào

  • Dòng 1: Số nguyên N (2N105)
  • Dòng 2: N số nguyên a1,a2,,aN (1ai1018, tổng ai1018)
  • Dòng 3: Số nguyên Q (1Q105)
  • Q dòng tiếp theo: Mỗi dòng chứa số nguyên di (1di1018)

Dữ liệu ra

Với mỗi truy vấn, in ra một số nguyên trên một dòng — số thao tác tối thiểu, hoặc 1 nếu không thể.

Ràng buộc

  • 2N105, 1Q105
  • 1ai1018, tổng S=i=1Nai1018
  • 1di1018
  • Test 2-4: N,Q5000
  • Test 5-7: tất cả ai109
  • Test 8-26: không có ràng buộc thêm

Ví dụ

Input Output Giải thích
6
1 2 3 1 1 4
7
1
2
3
4
5
6
12
6
6
4
5
-1
4
5
Với d=3: gộp tiết 1,2 thành 3; gộp tiết 5,6 thành 5; gộp tiết 4,5 thành 6; tách tiết 6 thành 3,3. Tổng cộng 4 thao tác. Với d=5: tổng S=12 không chia hết cho 5 nên trả về 1.
4
3 6 2 1
5
4
3
6
12
7
5
2
4
3
-1
Với d=3: tổng S=12, k=4. Tiền tố [3,9] chia hết cho 3 nên x=2, đáp án =4+424=2. Với d=7: 12 không chia hết cho 7 nên 1.

Ghi chú

Không thể đạt d=5 trong ví dụ 1 vì tổng S=12 không chia hết cho 5 — dù có bao nhiêu thao tác cũng không thể chia đều.

Một thao tác tách hoặc gộp đều được tính là 1 thao tác.

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