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

Đếm dãy con

Đề bài

Mô tả

Cho một dãy số nguyên dương a1,a2,,an. Xét tất cả 2n1 dãy con khác rỗng của nó. Một dãy con được gọi là đẹp nếu hiệu giữa phần tử lớn nhất và phần tử nhỏ nhất của nó nhỏ hơn d.

Cho hai số nguyên Xd. Hãy dựng một dãy số bất kỳ có đúng X dãy con đẹp.

Dãy dựng ra phải thỏa mãn: số phần tử không vượt quá 10000, và mỗi phần tử là một số nguyên dương nhỏ hơn 1018.

Hai dãy con được coi là khác nhau nếu tập chỉ số được chọn khác nhau, kể cả khi chúng chứa cùng bộ giá trị.

Dữ liệu vào

Một dòng duy nhất chứa hai số nguyên Xd.

Dữ liệu ra

Nếu không tồn tại dãy nào thỏa mãn, in ra một số 1.

Ngược lại, in ra hai dòng:

  • Dòng đầu chứa số nguyên n (1n10000) là số phần tử của dãy.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an (1ai<1018).

Nếu có nhiều đáp án, in ra đáp án bất kỳ.

Ràng buộc

  • 1X109
  • 1d109

Ví dụ

Input Output Giải thích
10 5 6
1 6 6 6 11 16
Dãy tách thành 4 nhóm giá trị cách nhau đúng 5: {1}, {6, 6, 6}, {11}, {16}. Dãy con đẹp không thể lấy phần tử từ hai nhóm khác nhau, nên tổng số là (211)+(231)+(211)+(211)=1+7+1+1=10.
4 2 3
1 1 3
Hai nhóm {1, 1} và {3}. Số dãy con đẹp là (221)+(211)=3+1=4. Đáp án 10 100 1000 10000 cũng hợp lệ vì bốn giá trị đôi một cách nhau ít nhất 2.

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.400 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 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 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 swipl 9.0.4 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 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0