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

Luyện tập trong k ngày

Đề bài

Mô tả

Bạn cần giải đúng n bài tập trong vòng k ngày để chuẩn bị cho kỳ thi.

Để vừa không trì hoãn vừa không quá sức, mỗi ngày phải giải ít nhất một bài. Đồng thời, nếu trong một ngày giải x bài thì ngày kế tiếp phải giải lớn hơn x nhưng không quá 2x bài (để tiến bộ nhưng không kiệt sức).

Hãy tìm một dãy a1,a2,,ak thoả mãn:

  • a1+a2++ak=n;
  • ai1 với mọi i;
  • ai<ai+12ai với mọi 1ik1.

Nếu không tồn tại dãy như vậy, in NO. Ngược lại, in YES ở dòng đầu và một dãy hợp lệ ở dòng thứ hai (có thể có nhiều đáp án, in ra một đáp án bất kỳ).

Dữ liệu vào

Một dòng chứa hai số nguyên nk (1n109, 1k105).

Dữ liệu ra

In NO nếu không có dãy hợp lệ. Ngược lại, in YES ở dòng đầu và k số nguyên a1,a2,,ak ở dòng thứ hai, cách nhau bởi dấu cách.

Ràng buộc

  • 1n109
  • 1k105

Ví dụ

Input Output Giải thích
26 6 YES
1 2 4 5 6 8
Dãy có tổng 1+2+4+5+6+8=26. Kiểm tra: 22·1, 42·2, 52·4, 62·5, 82·6, mọi điều kiện đều thoả.
8 3 NO Tổng tối thiểu cho k=31+2+3=6, tổng tối đa là 1+2+4=7 nên không thể đạt được 8.
1 1 YES
1
Chỉ có duy nhất một ngày và một bài.
9 4 NO Tổng tối thiểu cho k=41+2+3+4=10>9, không thể chia.

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