Xâu của chú chim cánh cụt Polo

Đề bài

Mô tả

Cho hai số nguyên dương n và k. Hãy tìm một xâu s thỏa mãn đồng thời các điều kiện sau:

  1. Xâu gồm đúng n chữ cái Latin thường (độ dài xâu bằng n), trong đó có đúng k chữ cái phân biệt được sử dụng.
  2. Không có hai chữ cái liền kề nào giống nhau, tức là si≠si+1 với mọi 1≤i<n.
  3. Trong tất cả các xâu thỏa mãn điều kiện 1 và 2, xâu cần tìm là xâu có thứ tự từ điển nhỏ nhất.

Nếu không tồn tại xâu nào thỏa mãn, hãy in ra −1.

Xâu x=x1x2…xp có thứ tự từ điển nhỏ hơn xâu y=y1y2…yq nếu x là tiền tố thực sự của y, hoặc tại vị trí đầu tiên hai xâu khác nhau thì chữ cái của x có mã ASCII nhỏ hơn.

Dữ liệu vào

Một dòng chứa hai số nguyên dương n và k (1≤n≤106, 1≤k≤26) là độ dài xâu và số chữ cái phân biệt.

Dữ liệu ra

In ra xâu cần tìm trên một dòng. Nếu không tồn tại, in ra −1.

Ràng buộc

  • 1≤n≤106
  • 1≤k≤26

Ví dụ

Input Output Giải thích
7 4 ababacd Xâu dài 7, dùng đúng 4 chữ cái phân biệt (a, b, c, d), không có hai chữ liền kề giống nhau, và nhỏ nhất theo thứ tự từ điển.
4 7 -1 Không thể dùng 7 chữ cái phân biệt trong một xâu chỉ dài 4.

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