trang chủ / đề bài / divpairs

Chia hết

Đề bài

Mô tả

Với một tập hợp các số nguyên dương S, định nghĩa f(S) là số cặp (a,b) thỏa mãn đồng thời:

  • a và b đều thuộc S;
  • a<b;
  • a là ước của b (tức b chia hết cho a).

Cho hai số nguyên n và k. Hãy tìm một tập hợp S là tập con của {1,2,…,n} sao cho f(S)=k.

Dữ liệu vào

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

Dữ liệu ra

Nếu không tồn tại tập S thỏa mãn, in ra một dòng chứa từ No.

Ngược lại, in ra:

  • Dòng đầu tiên chứa từ Yes;
  • Dòng thứ hai chứa số nguyên m là số phần tử của tập S tìm được;
  • Dòng thứ ba chứa m số nguyên là các phần tử của S (theo thứ tự bất kỳ).

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

Ràng buộc

  • 1≤n≤3·105
  • 1≤k≤2·109

Ví dụ

Input Output Giải thích
3 3 No Với n=3, tập lớn nhất là {1,2,3} chỉ có 2 cặp là (1,2) và (1,3), không đạt được k=3.
6 6 Yes
5
1 2 4 5 6
Các cặp hợp lệ: (1,2),(1,4),(1,5),(1,6),(2,4),(2,6), tổng cộng 6 cặp.
8 3 Yes
3
1 2 4
Các cặp hợp lệ: (1,2),(1,4),(2,4), tổng cộng 3 cặp. Tập {2,4,5,8} cũng là một đáp án hợp lệ khá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.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