#P4663. Ann and Half-Palindrome

    ID: 2230 传统题 2000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>动态规划数据结构Trie 树CodeForces

Ann and Half-Palindrome

Ann and Half-Palindrome

题面翻译

给定一个只包含 a,ba,b 的字符串 s(1s5000)s(1\le|s|\le5000) ,要输出它所有子串中字典序第 kk 小的半回文串。若字符串 tt 是半回文串 ,则对于 i[1,t+12]\forall i\in[1,\frac{|t|+1}{2}]ii 为奇数,满足 ti=tti+1t_i=t_{|t|-i+1} 。数据保证有解。注意同一子串在字典序排列中出现次数与其在 ss 中出现次数相同

题目描述

Tomorrow Ann takes the hardest exam of programming where she should get an excellent mark.

On the last theoretical class the teacher introduced the notion of a half-palindrome.

String t t is a half-palindrome, if for all the odd positions i i () the following condition is held: ti=tti+1 t_{i}=t_{|t|-i+1} , where t |t| is the length of string t t if positions are indexed from 1 1 . For example, strings "abaa", "a", "bb", "abbbaa" are half-palindromes and strings "ab", "bba" and "aaabaa" are not.

Ann knows that on the exam she will get string s s , consisting only of letters a and b, and number k k . To get an excellent mark she has to find the k k -th in the lexicographical order string among all substrings of s s that are half-palyndromes. Note that each substring in this order is considered as many times as many times it occurs in s s .

The teachers guarantees that the given number k k doesn't exceed the number of substrings of the given string that are half-palindromes.

Can you cope with this problem?

输入格式

The first line of the input contains string s s ( 1<=s<=5000 1<=|s|<=5000 ), consisting only of characters 'a' and 'b', where s |s| is the length of string s s .

The second line contains a positive integer k k — the lexicographical number of the requested string among all the half-palindrome substrings of the given string s s . The strings are numbered starting from one.

It is guaranteed that number k k doesn't exceed the number of substrings of the given string that are half-palindromes.

输出格式

Print a substring of the given string that is the k k -th in the lexicographical order of all substrings of the given string that are half-palindromes.

样例 #1

样例输入 #1

abbabaab
7

样例输出 #1

abaa

样例 #2

样例输入 #2

aaaaa
10

样例输出 #2

aaa

样例 #3

样例输入 #3

bbaabb
13

样例输出 #3

bbaabb

提示

By definition, string a=a1a2... an a=a_{1}a_{2}...\ a_{n} is lexicographically less than string b=b1b2... bm b=b_{1}b_{2}...\ b_{m} , if either a a is a prefix of b b and doesn't coincide with b b , or there exists such i i , that $ a_{1}=b_{1},a_{2}=b_{2},...\ a_{i-1}=b_{i-1},a_{i}<b_{i} $ .

In the first sample half-palindrome substrings are the following strings — a, a, a, a, aa, aba, abaa, abba, abbabaa, b, b, b, b, baab, bab, bb, bbab, bbabaab (the list is given in the lexicographical order).