博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
A. Polo the Penguin and Strings
阅读量:5943 次
发布时间:2019-06-19

本文共 1732 字,大约阅读时间需要 5 分钟。

time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Little penguin Polo adores strings. But most of all he adores strings of length n.

One day he wanted to find a string that meets the following conditions:

  1. The string consists of n lowercase English letters (that is, the string's length equals n), exactly k of these letters are distinct.
  2. No two neighbouring letters of a string coincide; that is, if we represent a string as s = s1s2... sn, then the following inequality holds,si ≠ si + 1(1 ≤ i < n).
  3. Among all strings that meet points 1 and 2, the required string is lexicographically smallest.

Help him find such string or state that such string doesn't exist.

String x = x1x2... xp is lexicographically less than string y = y1y2... yq, if either p < q and x1 = y1, x2 = y2, ... , xp = yp, or there is such number r (r < p, r < q), that x1 = y1, x2 = y2, ... , xr = yr and xr + 1 < yr + 1. The characters of the strings are compared by their ASCII codes.

Input

A single line contains two positive integers n and k (1 ≤ n ≤ 106, 1 ≤ k ≤ 26) — the string's length and the number of distinct letters.

Output

In a single line print the required string. If there isn't such string, print "-1" (without the quotes).

Sample test(s)
input
7 4
output
ababacd
input
4 7
output
-1

解题说明:此题是一道典型的贪心问题,既要保证字符串中随意两个连续字符串不同,也要保证字典序最小,最简单的想法是仅仅用a,b交替。在最后补上其它字符串就可以。

#include
#include
#include
#include
#include
#include
#include
using namespace std;int main(){ int n, k, c, r, i; scanf("%d%d", &n, &k); if (k == n&&k <= 26) { c = 'a'; for (i = 0; i
n || k == 1) { printf("-1\n"); } else { for (i = 0; i

转载地址:http://mdwxx.baihongyu.com/

你可能感兴趣的文章
面向对象(续)
查看>>
VUE 动态给对象增加属性,并触发视图更新。
查看>>
oracle 分区表
查看>>
字典树--Xor问题
查看>>
Windows 根据进程名杀死进程 kill
查看>>
Eclipse项目启动不了
查看>>
Javascript中的Callback方法浅析
查看>>
HDU1671-Phone List (trie树)
查看>>
Error:java: Compilation failed: internal java compiler
查看>>
笔记。------数组
查看>>
不同数据库中查询前几条记录的用法(SQL Server/Oracle/Postgresql)
查看>>
lab2_selenium测试
查看>>
C# 移位运算符
查看>>
git学习(持续踩坑中
查看>>
无线通信
查看>>
JSONPlaceholder使用
查看>>
java连接redis无法连接,报异常RedisConnectionException
查看>>
【luogu 3375】【模板】KMP字符串匹配
查看>>
MRI原理谁都看得懂版
查看>>
微软面试题 博弈论 经典案例 (参考答案)
查看>>